洛谷P1093、[NOIP2007 普及组] 奖学金
思路
一个简单的结构体排序,掌握java语言的排序方法即可
代码
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer st=new StreamTokenizer(br);
PrintWriter pr=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
st.nextToken();
int n=(int)st.nval;
Score[] score=new Score[n];
int[] sc=new int[3];
int index=1;
for(int i=0;i<n;i++) {
for(int j=0;j<3;j++) {
st.nextToken();
sc[j]=(int)st.nval;
}
score[i]=new Score(sc[0], sc[1], sc[2], index);
index++;
}
Arrays.sort(score);
for(int i=0;i<5;i++) {
pr.print(score[i].Id+" "+score[i].totalSocre);
pr.println();
}
pr.flush();
}
static class Score implements Comparable<Score>{
public int chinese;
public int math;
public int eglish;
public int totalSocre;
public int Id;
Score(int chinese,int math,int eligth,int id){
this.chinese=chinese;
this.math=math;
this.eglish=eligth;
this.Id=id;
this.totalSocre=this.chinese+this.math+this.eglish;
}
@Override
public int compareTo(Score o) {
if(this.totalSocre!=o.totalSocre) return o.totalSocre-this.totalSocre;
if(this.chinese!=o.chinese) return o.chinese-this.chinese;
return this.Id-o.Id;
}
}
}