只对了#1,样例过了
查看原帖
只对了#1,样例过了
1183074
xzy_AK_IOI楼主2024/3/2 19:06
#include<bits/stdc++.h>
using namespace std;
struct ren{
	string name;
	int zhiwei;
	long long bang;
	int den;
	int wei;
}r[10010];
string s3[8]={"BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong"};
int s2[8]={2,4,7,25,10000};
bool pai(ren a,ren b)
{
	int a2=a.zhiwei,b2=b.zhiwei;
	if (a2==b2)
	{
		if (a.den==b.den)
		{
			return a.wei>b.wei;
		}
		return a.den>b.den;
	}
	return a2<b2;
}
bool pai2(ren a,ren b)
{
	if (a.bang==b.bang)
	{
		return a.wei>b.wei;
	}
	return a.bang>b.bang;	
}
int main()
{
	int n,a2,mn,fu2=0,fei2=0;
	cin>>n;
	string s;
	for (int i=1;i<=n;i++)
	{
		a2=-1;
		cin>>r[i].name>>s>>r[i].bang>>r[i].den;
		for (int j=0;j<=7;j++)
		{
			if (s==s3[j])
			{
				a2=j;
				break;
			}
		}
		r[i].wei=i;
		r[i].zhiwei=a2;
	}
	sort(r+1+3,r+n+1,pai2);
	int h=0;
	for (int i=4;i<=n;i++)
	{
		if (s2[h]>0)
		{
			s2[h]--;
			r[i].zhiwei=h+2;
		}
		else
		{
			h++;
			s2[h]--;
			r[i].zhiwei=h+2;
		}
	}
	sort(r+1+3,r+n+1,pai);
	for (int i=1;i<=n;i++)
	{
		cout<<r[i].name<<" "<<s3[r[i].zhiwei]<<" "<<r[i].den<<'\n';
	}
	return 0;
}

???????????????????????

2024/3/2 19:06
加载中...