80分求助

P5740 【深基7.例9】最厉害的学生

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 谢谢大佬


|