题解:P5740 【深基7.例9】最厉害的学生
本题就是进行排序的一道题目,将每个学生的信息存入结构体,并重载运算符 <,结构体 a 和 b 满足 a<b,当且仅当 a 的三科成绩大于 b 的三科成绩,或 a 的输入顺序在 b 之前。
下面是代码。
#include<bits/stdc++.h>
using namespace std;
struct Node{
string s;
int a, b, c, id;
bool operator<(const Node &i) const{
if (a+b+c==i.a+i.b+i.c) return id < i.id;
return a+b+c>i.a+i.b+i.c;
}
} a[1001];
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].s>>a[i].a>>a[i].b>>a[i].c, a[i].id = i;
sort(a+1, a+n+1);
cout << a[1].s << ' ' << a[1].a << ' ' << a[1].b<< ' ' << a[1].c;
}