而且这题还没有样例点下载
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct people
{
string mingzi, zhiwei;
int banggong, dengji, bianhao, zh;
}a[120];
bool cmp1(people a, people b)
{
if(a.banggong != b.banggong)
{
return a.banggong > b.banggong;
}
else
{
return a.bianhao < b.bianhao;
}
}
bool cmp2(people a, people b)
{
if(a.zh != b.zh)
{
return a.zh > b.zh;
}
else if(a.dengji != b.dengji)
{
return a.dengji > b.dengji;
}
else
{
return a.bianhao < b.bianhao;
}
}
int main()
{
int n;
string m, z;
int b, d;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> m >> z >> b >> d;
if(z == "BangZhu" || z == "FuBangZhu")
{
cout << m << ' ' << z << ' ' << d << endl;
continue;
}
else
{
a[i].mingzi = m;
a[i].zhiwei = z;
a[i].banggong = b;
a[i].dengji = d;
a[i].bianhao = i;
}
}
sort(a, a + n, cmp1);
a[0].zhiwei = "HuFa";
a[0].zh = 5;
a[1].zhiwei = "HuFa";
a[1].zh = 5;
for(int i = 2; i <= 5; i++)
{
a[i].zhiwei = "ZhangLao";
a[i].zh = 4;
}
for(int i = 6; i <= 12; i++)
{
a[i].zhiwei = "TangZhu";
a[i].zh = 3;
}
for(int i = 13; i <= 37; i++)
{
a[i].zhiwei = "JingYing";
a[i].zh = 2;
}
for(int i = 38; i <= n - 1; i++)
{
a[i].zhiwei = "BangZhong";
a[i].zh = 1;
}
sort(a, a + n - 3, cmp2);
for(int i = 0; i < n - 3; i++)
{
cout << a[i].mingzi << ' ' << a[i].zhiwei << ' ' << a[i].dengji << endl;
}
return 0;
}
//两位护法,四位长老,七位堂主,二十五名精英,帮众若干。
/*
DrangonflyKang BangZhu 66
RenZaiJiangHu FuBangZhu 60
absi2011 FuBangZhu 60
BingQiLingDeYanLei HuFa 58
BangYou2 HuFa 10
Lcey ZhangLao 49
BangYou1 ZhangLao 40
BangYou3 ZhangLao 1
BangYou4 ZhangLao 1
*/