题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
struct P{
    string name;
    int score;
} stu[N];
bool cmp_up(P p1, P p2){
    return p1.score < p2.score;
}
bool cmp_down(P p1, P p2){
    return p1.score > p2.score;
}

int main() {
    int n;
    int flag;
    while(cin >> n){
        cin >> flag;
        for(int i = 0; i < n; i ++){
            cin >> stu[i].name >> stu[i].score;
        }
        //重点:sort是不稳定排序,stable_sort才是稳定排序
        if(flag == 0) stable_sort(stu, stu + n, cmp_down);
        else stable_sort(stu, stu + n, cmp_up);
        for(int i = 0; i < n; i ++)
            cout << stu[i].name <<" "<<stu[i].score << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务