Problem:
リーグ戦のスコアシート

スポーツの大会にはリーグ戦とトーナメント戦があります。サッカーのリーグ戦では勝・負・引分にそれぞれ点数を付け、その勝ち点で順位を競います。勝ち点はそれぞれ勝(3点)、負(0点)、引分(1点)です。

チーム数とリーグ戦の成績を入力とし、成績の良い順(勝ち点の多い順)に並べ替え、チーム名と勝ち点を出力するプログラムを作成してください。勝ち点が同点の場合は入力順に出力してください。

Input

複数のデータセットが与えられます。各データセットは以下の形式で与えられます。

n
name1 w1 l1 d1
name2 w2 l2 d2
:
namen wn ln dn

１行目にチーム数 n (n ≤ 10) が与えられます。続く n 行にチーム i の名前 namei (20文字以内のアルファベット)、勝の数 wi、負の数 li、引分の数 di (0 ≤ wi, li, di ≤ 9) が空白区切りで与えられます。

チーム数が 0 のとき、入力の終了とします。データセットの数は 50 を超えません。

Output

データセットごとに、並べ替えたチームのリストを出力してください。i 行目に i 番目のチームの名前と勝ち点をカンマで区切って出力してください。

データセットの間に１つの空行を入れてください。

Sample Input

4
Japan 1 0 2
Egypt 1 2 0
Canada 0 2 1
Spain 2 0 1
3
India 0 2 0
Poland 1 0 1
Italy 1 0 1
0

Output for the Sample Input

Spain,7
Japan,5
Egypt,3
Canada,1

Poland,4
Italy,4
India,0

Solution in JAVA (judge verdict: Wrong Answer)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;

public class Main{
	public static void main(String[] args)throws IOException{
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader reader = new BufferedReader(isr);
		String string;
		int n, point;
		
		while(!(string = reader.readLine()).equals("0")){
			PriorityQueue<Pair> que = new PriorityQueue<Pair>();
			n = Integer.valueOf(string);
			
			for(int i = 0; i < n; i++){
				string = reader.readLine();
				point = Integer.valueOf(string.split(" ")[1]) * 3 + 
						Integer.valueOf(string.split(" ")[3]);
				que.add(new Pair(point, string.split(" ")[0]));
			}
			while(!que.isEmpty()){
				Pair pair = que.poll();
				System.out.println(pair.b + "," + pair.a);
			}
			System.out.println();
		}
		reader.close();
	}
}

class Pair implements Comparable<Pair>{
	int a;
	String b;
	Pair(int a, String b){
		this.a = a;
		this.b = b;
	}
	@Override
	public int compareTo(Pair o) {
		return -(a - o.a);
	}
}