只过了第一个。。。。。 修改了好久,救救孩子吧!
#include<bits/stdc++.h>
using namespace std;
struct inf{
string name,pro;
int grade,id;
long long gong;
};
bool cmp(inf x,inf y){
if(x.gong==y.gong) return x.id<y.id;
return x.gong>y.gong;
}
bool cmp2(inf x,inf y){
if(x.grade==y.grade) return x.id<y.id;
return x.grade>y.grade;
}
int main(){
int n;
struct inf a[112];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].name>>a[i].pro>>a[i].gong>>a[i].grade;
a[i].id=i;
}
sort(a+3,a+n,cmp);
for(int i=3;i<n;i++){
if(n>=4)
sort(a+3,a+5,cmp2);
else
sort(a+3,a+n,cmp2);
if(i<=4){
a[i].pro="HuFa";
continue;
}
if(n>=8)
sort(a+5,a+9,cmp2);
else
sort(a+5,a+n,cmp2);
if(i<=8){
a[i].pro="ZhangLao";
continue;
}
if(n>=15)
sort(a+9,a+16,cmp2);
else
sort(a+9,a+n,cmp2);
if(i<=15){
a[i].pro="TangZhu";
continue;
}
if(n>=40)
sort(a+15,a+41,cmp2);
else
sort(a+15,a+n,cmp2);
if(i<=40){
a[i].pro="JingYing";
continue;
}
sort(a+41,a+n,cmp2);
a[i].pro="BangZhong";
}
for(int i=0;i<n;i++){
printf("%s %s %d\n",a[i].name.c_str(),a[i].pro.c_str(),a[i].grade);
}
}