文章

54

粉丝

66

获赞

54

访问

3.5k

头像
成绩排序 (结构体数组)题解:
P1151 清华大学上机题
发布于2024年4月25日 00:28
阅读数 67

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
int n, m;
struct st{
    string name;
    int sum;
    int id;
}s[N];

bool cmp1(st a, st b)
{
    if(a.sum== b.sum) return a.id < b.id;
    return a.sum < b.sum;
}

bool cmp2(st a, st b)
{
    if(a.sum == b.sum) return a.id < b.id;
    return a.sum > b.sum;
}

int main()
{
    while(cin >> n >> m)
    {
        for(int i = 0; i < n; i ++)
        {
            cin >> s[i].name >> s[i].sum;
            s[i].id = i;
        }
            
        if(m) sort(s, s + n, cmp1);
        else sort(s, s + n, cmp2);
        
        for(int i = 0; i < n; i ++)
            cout << s[i].name << " " << s[i].sum << endl;
    }
    
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发