Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
45406 | 王嘉瑜 | 奖学金 | C++ | Accepted | 1 MS | 272 KB | 892 | 2023-03-24 14:51:40 |
#include <iostream> using namespace std; const int N=305; int n; struct Student{ int number; int chinese; int math; int english; int sum; }stu[N]; bool cmp(Student a, Student b){ //如果a的排名在b的前面,返回true if(a.sum==b.sum){ if(a.chinese == b.chinese){ return a.number < b.number; } else return a.chinese > b.chinese; } else return a.sum > b.sum; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>stu[i].chinese>>stu[i].math>>stu[i].english; stu[i].number = i; stu[i].sum = stu[i].chinese + stu[i].math + stu[i].english; } for(int i=1;i<n;i++){ bool flag = false; for(int j=1;j<=n-i;j++){ if(!cmp(stu[j],stu[j+1])){ swap(stu[j],stu[j+1]); flag = true; } } if(!flag)break; } for(int i=1;i<=5;i++){ cout<<stu[i].number<<' '<<stu[i].sum<<endl; } return 0; }