p1786 50pts求助
  • 板块学术版
  • 楼主Greeper
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/2/8 13:56
  • 上次更新2025/2/8 16:01:47
查看原帖
p1786 50pts求助
1311900
Greeper楼主2025/2/8 13:56

一片残阳铺水中
半江瑟瑟(ac)半江红(wa) 评测记录

#include<bits/stdc++.h>
using namespace std;
const int N=0;
int T,n,m,k;
struct p
{
	string name,pos;
	int help,level;
	int id;
}a[115];
bool cmp(p x,p y)
{
	if(x.pos=="BangZhu")return 1;
	if(y.pos=="BangZhu")return 0;
	if(x.pos=="FuBangZhu"&&y.pos=="FuBangZhu")return x.id<y.id;
	if(x.pos=="FuBangzhu")return 1;
	if(y.pos=="FuBangZhu")return 0;
	if(x.help!=y.help)return x.help>y.help;
	return x.id<y.id;
}
bool cmp1(p x,p y)
{
	if(x.level!=y.level)return x.level>y.level;
	return x.id<y.id;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].name>>a[i].pos>>a[i].help>>a[i].level;
		a[i].id=i;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=4;i<=n;i++)
	{
		if(i<=5)a[i].pos="HuFa";
		else if(i<=9)a[i].pos="ZhangLao";
		else if(i<=16)a[i].pos="TangZhu";
		else if(i<=41)a[i].pos="JingYing";
		else a[i].pos="BangZhong";
	}
	if(n>=4)sort(a+4,a+min(6,n+1),cmp1);
	if(n>=6)sort(a+6,a+min(10,n+1),cmp1);
	if(n>=10)sort(a+10,a+min(17,n+1),cmp1);
	if(n>=17)sort(a+17,a+min(42,n+1),cmp1);
	if(n>=42)sort(a+42,a+n+1,cmp1);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i].name<<' '<<a[i].pos<<' '<<a[i].level<<' '<<endl;
	}
	return 0;
}

2025/2/8 13:56
加载中...