10分求助各位大佬
查看原帖
10分求助各位大佬
1016190
Ji20081202楼主2023/7/16 17:09
/*P1786*/
#include <iostream>
#include <algorithm>
using namespace std;

struct peo
{
    string name, job;
    long long contribution, level, order;
}a[115];

int cmp1(peo a, peo b)
{
    if (a.contribution != b.contribution) return a.contribution > b.contribution;
    return a.order < b.order;
}

int cmp2(peo a, peo b)
{
    if (a.job == b.job)
    {
        if (a.level != b.level) return a.level > b.level;
        return a.order < b.order;
    }
    else return false;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i].name >> a[i].job >> a[i].contribution >> a[i].level;
        a[i].order = i;
    }
    sort(a+3, a+n, cmp1);
    for (int i = 3; i < n; i++)
    {
        if (i >= 3 && i <= 4) a[i].job = "HuFa";
        else if (i >= 5 && i <= 8) a[i].job = "ZhangLao";
        else if (i >= 9 && i <= 15) a[i].job = "TangZhu";
        else if (i >= 16 && i <= 40) a[i].job = "JingYing";
        else a[i].job = "BangZhong";
    }
    sort(a, a+n, cmp2);
    for (int i = 0; i < n; i++)
    {
        cout << a[i].name << ' ' << a[i].job << ' ' << a[i].level << endl;
    }
    return 0;

}
2023/7/16 17:09
加载中...