0
已解决
佟佳航
资深守护
资深守护
题目链接: 酷町堂:6450
#include <bits/stdc++.h>
using namespace std;
/*
总分从高到低排序,
如果总分相同,数学分数从高到低
输出排序后所有学生的姓名
*/
struct URE{
string name;
int ch,ma,en,id;
int sum(){
return ch+ma+en;
}
}a[105];
bool cmp(URE x,URE y){
if(x.sum()!=y.sum()){
return x.sum()>y.sum();
}else if(x.ma!=y.ma){
return x.ma>y.ma;
}else if(x.en!=y.en){
return x.en>y.en;
}
return x.id<y.id;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].id>>a[i].ch>>a[i].ma>>a[i].en;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].name<<endl;
}
return 0;
}