P1093 [NOIP2007 普及组] 奖学金

Ymt2014 @ 2024-11-27 17:36:27

今天运势不大好,连坐两题都wa了

求救!!!

#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
void YMT(){
    pair<int,pair<int,int> > p[333];
    int n;  cin >> n;
    for (int i=1;i <= n;i ++){
        int a,b,c; cin >> a >> b >> c;
        p[i].fi = a+b+c, p[i].se.fi = a, p[i].se.se = i;
    }
    sort(p+1,p+n+1);
    reverse(p+1,p+n+1);
    for (int i=1;i<=5;i++)
        cout << p[i].se.se << " " << p[i].fi << endl;
}
int main(){
    int T=1; //cin >> T;
    while(T--) YMT();
    return 0;
}

by Ymt2014 @ 2024-11-27 17:38:11

啊,有个错别字

两题都wa了


by Joker_IV @ 2024-11-27 18:16:19

直接sort不行,建议手写一个cmp函数

先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

还有,我觉得结构体比两层pii写着方便


by Ymt2014 @ 2024-11-28 16:53:14

@Joker_IV 感谢!!!


|