50 pts 求调
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
struct Node{
string mz,zw;
ll bg,dj,sx,zwn;
}pp[150];
bool cmp1(Node a,Node b){
if(a.bg!=b.bg)return a.bg>b.bg;
return a.sx<b.sx;
}
bool cmp2(Node a,Node b){
if(a.zwn!=b.zwn)return a.zwn>b.zwn;
if(a.dj!=b.dj)return a.dj>b.dj;
return a.sx<b.sx;
}
int main(){
cin>>n;
for(ll i=1;i<=n;i++)
cin>>pp[i].mz>>pp[i].zw>>pp[i].bg>>pp[i].dj,pp[i].sx=i;
sort(pp+4,pp+1+n,cmp1);
if(pp[2].bg!=pp[3].bg&&pp[2].bg<pp[3].bg)
swap(pp[2],pp[3]);
for(ll i=4;i<=n;i++)
if(i<6)pp[i].zw="HuFa",pp[i].zwn=5;
else if(i<10)pp[i].zw="ZhangLao",pp[i].zwn=4;
else if(i<17)pp[i].zw="TangZhu",pp[i].zwn=3;
else if(i<42)pp[i].zw="JingYing",pp[i].zwn=2;
else pp[i].zw="BangZhong",pp[i].zwn=1;
sort(pp+4,pp+1+n,cmp2);
for(ll i=1;i<=n;i++)
cout<<pp[i].mz<<' '<<pp[i].zw<<' '<<pp[i].dj<<endl;
return 0;
}
样例过了,剩下的WA了