看了几百遍也不知道有什么问题,自出了十几组数据,都过了,dalao看看。
#include<bits/stdc++.h>
using namespace std;
struct Stu{
int chinese,math,english,score,h;
}a[310];
bool cmp(Stu x,Stu y){
return (x.score>y.score)||(x.score==y.score&&x.chinese>y.chinese)||(x.score==y.score&&x.chinese==y.chinese&&x.math>y.math)||(x.score==y.score&&x.chinese==y.chinese&&x.math==y.math&&x.english>y.english)||((x.score==y.score&&x.chinese==y.chinese&&x.math==y.math&&x.english==y.english&&x.h<y.h));
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].chinese>>a[i].math>>a[i].english;
a[i].score=a[i].chinese+a[i].math+a[i].english;
a[i].h=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=5;i++){
cout<<a[i].h<<' '<<a[i].score<<endl;
}
return 0;
}
啊……