0124 - League Match Score Sheet

#include <functional>
#include <iostream>
#include <map>
#include <string>
using namespace std;

void Slove(int n)	{
	int win, draw, lose;
	string country;
	multimap< int,string,greater<int> > data;
	
	for (int i=0; i<n; ++i)	{
		cin >> country >> win >> lose >> draw;
		data.insert( multimap<int,string>::value_type(3*win+draw,country) );
	}
	for (multimap<int,string>::iterator it=data.begin(); it!=data.end(); ++it)
		cout << (*it).second << "," << (*it).first << endl;
}

int main(void)	{
	int n;
	bool flg=false;

	while (cin >> n && n)	{
		(flg)?	cout << endl : flg=true;
		Slove(n);
	}
	return 0;
}

キーの重複が許容出来るmultimapを使って解いた。