D_M_ @ 2022-01-15 12:08:26
第一个点和最后一个点WA了
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,x,maxi;
struct stu{
string name;
ll ch,ma,eng,ans;
};
stu a[1010];
int main(){
cin >> n;
for(ll i=0;i<n;i++){
cin >> a[i].name >> a[i].ch >> a[i].ma >> a[i].eng;
a[i].ans=a[i].ch+a[i].ma+a[i].eng;
}
for(ll i=0;i<n;i++){
maxi=max(a[i].ans,maxi);
if(maxi==a[i].ans){
x=i;
}
}
cout << a[x].name << " " << a[x].ch << " " << a[x].ma << " " << a[x].eng;
return 0;
}
by coldy_rainy @ 2022-01-15 12:50:51
@B站滴魔墨
把
for(ll i=0;i<n;i++){
maxi=max(a[i].ans,maxi);
if(maxi==a[i].ans){
x=i;
}
}
改成
for(ll i=n-1;i>=0;i--){
maxi=max(a[i].ans,maxi);
if(maxi==a[i].ans){
x=i;
}
}
by coldy_rainy @ 2022-01-15 12:52:39
@B站滴魔墨
如果有多个总分相同的学生,输出靠前的那位
如果有多个最高分,你的源代码会输出靠后的那一位
用贪心即可,从后往前推
by D_M_ @ 2022-01-15 13:04:30
@penhaochen 谢谢大佬