求助,不知道问题在哪
查看原帖
求助,不知道问题在哪
119643
潜水的蒟蒻楼主2022/2/20 16:20
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct fff
{
    string name,po;
    int con,lev,pos;
}peo[120];
bool cmp1(fff x,fff y);//根据贡献值从大到小排序
bool cmp2(fff x,fff y);//职位为第一关键字,等级为第二关键字从大到小排序
signed main()
{
    //freopen("1.in","r",stdin);
    //freopen("1.out","w",stdout);
    int n;cin>>n;
    for(int i=1;i<=n;i++)cin>>peo[i].name>>peo[i].po>>peo[i].con>>peo[i].lev;
    sort(peo+3+1,peo+n+1,cmp1);
    /*
    cout<<"test cmp1:"<<endl;
    for(int i=1;i<=n;i++)cout<<peo[i].name<<" "<<peo[i].po<<" "<<peo[i].con<<" "<<peo[i].lev<<endl;
    cout<<endl;
    */
    peo[1].po="BangZhu";peo[1].pos=7;
    peo[2].po="FuBangZhu";peo[2].pos=6;peo[3].po="FuBangZhu";peo[3].pos=6;
    for(int i=4;i<=n;i++)
    {
        if(4<=i&&i<=5)
        {
            peo[i].po="HuFa";
            peo[i].pos=5;
        }
        else if(6<=i&&i<=9)
        {
            peo[i].po="ZhangLao";
            peo[i].pos=4;
        }
        else if(10<=i&&i<=16)
        {
            peo[i].po="TangZhu";
            peo[i].pos=3;
        }
        else if(17<=i&&i<=41)
        {
            peo[i].po="JingYing";
            peo[i].pos=2;
        }
        else
        {
            peo[i].po="BangZhong";
            peo[i].pos=1;
        }
        //cout<<"test : i="<<i<<" "<<peo[i].name<<" "<<peo[i].po<<" "<<peo[i].pos<<endl;
    }
    sort(peo+3+1,peo+n+1,cmp2);
    for(int i=1;i<=n;i++)cout<<peo[i].name<<" "<<peo[i].po<<" "<<peo[i].lev<<endl;
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}
bool cmp1(fff x,fff y)
{
    return x.con>y.con;
}
bool cmp2(fff x,fff y)
{
    if(x.pos==y.pos)return x.lev>y.lev;
    return x.pos>y.pos;
}
2022/2/20 16:20
加载中...