90分神犇求助!!!!!!!!!!!!!!

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

qaz12345678_ @ 2024-07-26 14:44:47

#include <bits/stdc++.h>
using namespace std;
int n;
struct Su
{
    string name;
    int m,c,e,sum = 0;
}a[1005];
bool cmp(Su x,Su y)
{
    return x.sum > y.sum;
}
int main()
{
    cin >> n;
    for (int i = 1;i <= n;i++)
    {
        cin >> a[i].name >> a[i].m >> a[i].c >> a[i].e;
        a[i].sum = a[i].m + a[i].c + a[i].e;
    }
    sort(a + 1,a + n + 1,cmp);
    cout << a[1].name << " " << a[1].m << " " <<  a[1].c << " " << a[1].e;
}

by NEKO_Daze @ 2024-07-26 14:48:14

如果有多个总分相同的学生,输出靠前的那位。


by lcfollower @ 2024-07-26 15:35:13

@qaz12345678_

如果有多个总分相同的学生,输出靠前的那位。

sort() 并不是稳定的排序,所以需要再维护一个结构体来表示学生的输入编号。

当然 \mathcal O(n^2) 的排序此题也能过。


|