AcWing 429. 奖学金
原题链接
简单
作者:
Zzztl
,
2021-01-17 23:27:50
,
所有人可见
,
阅读 438
#include<bits/stdc++.h>
using namespace std;
struct node{//定义一个结构体
int n;//学号
int sum;//总分
int chinese; //语文成绩
}a[310];
bool cmp(node a,node b){//自定义排序规则的sort
if(a.sum==b.sum&&a.chinese==b.chinese){//总分和语文成绩都相等 学号从小到大
return a.n < b.n;
}
else{
if(a.sum==b.sum)//只有总分相等 按照语文成绩从大到小
return a.chinese > b.chinese;
else
return a.sum > b.sum;//其余的 总分从大到小
}
}
int main()
{
int n,chinese,math,english;
cin>>n;
for(int i=1;i<=n;i++){
cin>>chinese>>math>>english;
a[i].n=i;
a[i].sum=chinese+math+english;
a[i].chinese=chinese;
}
sort(a+1,a+n+1,cmp);//排序
for(int i=1;i<=5;i++){ //输出前五名
cout<<a[i].n<<" "<<a[i].sum<<endl;
}
return 0;
}