AcWing 429. 奖学金
原题链接
简单
作者:
kyo
,
2021-01-17 11:20:36
,
所有人可见
,
阅读 318
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 310;
//结构体用来存每个学生的三门成绩,总分和学号
struct Stu{
int cha, math, eng, sum, id;
} stu[N];
int n;
//自定义排序规则
bool myCmp(Stu &a, Stu &b){
if (a.sum != b.sum)
return a.sum > b.sum;
if (a.cha != b.cha)
return a.cha > b.cha;
return a.id < b.id;
}
int main()
{
cin >> n;
//读入每个学生的信息,注意学号是从1开始
for (int i = 1; i <= n; ++i){
scanf("%d%d%d",&stu[i].cha,&stu[i].math,&stu[i].eng);
stu[i].sum = stu[i].cha + stu[i].math + stu[i].eng;
stu[i].id = i;
}
sort(stu + 1, stu + n + 1, myCmp);
for (int i = 1; i <= 5; ++i)
printf("%d %d\n",stu[i].id,stu[i].sum);
return 0;
}