比赛
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
描述
今天Acm举行了一场比赛,邀请大一的学生参加比赛,实际来了m个学生,当他们做好自己的位置的时候,一个Acm的成员小z按照顺序登记他们的信息(学号,姓名),当他们比赛完之后按照小z登记的信息填写他们的成绩;现在问题来了,acm的小z只记录大一同学的成绩,不知道排名,但小z想知道他们的排名,他很苦恼,聪明的你帮他写个程序解决一下吧。
输入
第一行是一个整数T表示测试数据的组数
每组测试数据的第一行 有一个整数m(m<=100)表示大一比赛的人数,之后m行,每行包含三个数据表示一个学生的信息,分别表示学生的学号,姓名,比赛成绩。
输出
输出每组学生排过序的名单(成绩相同谁在前面先输出谁)
样例输入
1
3
12066 zhangming 23
11077 wangming 45
13088 zhaoqian 15
样例输出
11077 wangming 45
12066 zhangming 23
13088 zhaoqian 15
注意:每一组数据的数据间相隔不一定只有一个空格哦
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
try {
Integer n=Integer.parseInt(bf.readLine());
while(n-->0){
int m=Integer.parseInt(bf.readLine());
FUN f[]=new FUN[m];
for(int i=0;i
String a=bf.readLine();
String a1[]=a.split(" ");
f[i]=new FUN(a,Float.parseFloat(a1[a1.length-1]));
}
Arrays.sort(f,new Comparator() {
@Override
public int compare(FUN o1, FUN o2) {
if(o1.grade>=o2.grade)
return 0;
return 1;
}
});
for(int i=0;i
System.out.println(f[i].s);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class FUN{
String s;
float grade;
public FUN(String s, float grade) {
this.s = s;
this.grade = grade;
}
}