我看大佬们都说的那个相等输出靠前的那个,我在cmp函数里处理了啊,只有大于才能交换,不就满足了吗,我把数据下载了,输入和输出一样的,不知道为啥过不了。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct student {
string name;
int chinese;
int math;
int english;
};
bool cmp(student a, student b) {
return a.chinese + a.math + a.english >= b.chinese + b.math + b.english;
}
int main() {
int n;
cin >> n;
vector<student> students(n);
for (int i = 0; i < n; ++i) {
cin >> students[i].name >> students[i].chinese >> students[i].math >> students[i].english;
}
sort(students.begin(), students.end(), cmp);
cout << students[0].name << " " << students[0].chinese << " " << students[0].math << " " << students[0].english;
return 0;
}