题解
2023-08-10 15:58:12
发布于:浙江
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct student { //student结构体
int chinese ,math ,english ,sum ,id;
};
bool cmp(student x,student y){ //sort的判断
if(x.sum == y.sum){
if (x.chinese > y.chinese || x.id < y.id)
return x.id > y.id;
if (x.chinese < y.chinese || x.id > y.id)
return x.id < y.id;
}
return x.sum > y.sum;
};
student lst[301] = {}; //结构体列表
int main(){
int n;
cin >> n;
for(int i = 1 ; i <= n ; i++){ //输入到结构体
cin >> lst[i].chinese >> lst[i].math >> lst[i].english;
lst[i].sum = lst[i].chinese + lst[i].math + lst[i].english;
lst[i].id = i;
}
stable_sort (lst + 1 ,lst + n + 1 ,cmp); //stable_sort 的稳定性高,单用sort会报错
for(int i = 1 ; i <= 5 ; i++)
cout << lst[i].id << " " << lst[i].sum << "\n"; //输出
return 0;
}
这里空空如也
有帮助,赞一个