代码:
#include<bits/stdc++.h>
using namespace std;
struct people{
int id;
string name;
string job;
int devote;
int high;
};
people a[200];
bool cmp1(people c , people d){
if(c.devote == d.devote) return c.id < d.id;
else return c.devote > d.devote;
}
bool cmp2(people e , people f){
if(e.job == f.job){
return e.high > f.high;
}
else return 0;
}
int ber[7] = {1 , 2 , 2 , 4 , 7 , 25 , -1};
string jobn[7] = {"Bangzhu" , "Fubangzhu" , "Hufa" , "Zhanglao" , "Tangzhu" , "Jingying" , "Bangzhong"};
int main(){
int n;
cin >> n;
for(int i = 1 ; i <= n ; i++){
a[i].id = i;
cin >> a[i].name >> a[i].job >> a[i].devote >> a[i].high;
}
sort(a + 4 , a + n + 1 , cmp1);
int num = 0;
for(int i = 1 ; i <= n ; i++){
if(ber[num] <= 0) num++;
if(num == 6){
a[i].job = jobn[6];
continue;
}
a[i].job = jobn[num];
ber[num]--;
}
sort(a + 4 , a + n + 1 , cmp2);
for(int i = 1 ; i <= n ; i++){
cout << a[i].name << " " << a[i].job << " " << a[i].high;
cout << "\n";
}
return 0;
}