当前情况:1RE,6,8,9WA
#include<bits/stdc++.h>
using namespace std;
struct node{
string zw,name;//地位,名称
long long lv,bg,sx,zwqd;//等级,帮贡,顺序,职位强度
}a[115];
bool cmp1(node x,node y){
if(x.bg!=y.bg) return x.bg>y.bg;
return x.sx<y.sx;
}
bool cmp2(node x,node y){
if(x.zwqd!=y.zwqd) return x.zwqd>y.zwqd;
else if(x.lv!=y.lv) return x.lv>y.lv;
return x.sx<y.sx;
}
int main(){
int n;cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].name>>a[i].zw>>a[i].bg>>a[i].lv;
a[i].sx=i+1;
}
sort(a+3,a+n,cmp1);
for(int i=3;i<n;i++){
if(i>=39+2){
a[i].zw="BangZhong";
a[i].zwqd=0;
}
else if(i>=14+2){
a[i].zw="JingYing";
a[i].zwqd=1;
}
else if(i>=7+2){
a[i].zw="TangZhu";
a[i].zwqd=2;
}
else if(i>=3+2){
a[i].zw="ZhangLao";a[i].zwqd=3;
}
else{
a[i].zw="HuFa";a[i].zwqd=4;
}
}
sort(a+4,a+n,cmp2);
for(int i=0;i<n;i++) cout<<a[i].name<<' '<<a[i].zw<<' '<<a[i].lv<<'\n';
return 0;
}