蒟蒻求助 0pts
查看原帖
蒟蒻求助 0pts
708963
WaterSky楼主2023/12/22 13:59
#include<bits/stdc++.h>
using namespace std;
long long n;
struct wbx{
	long long x,y,T,I;
	string name,work;
}a[1005];
bool cmp(wbx x,wbx y)
{
	if(x.x!=y.x)
	return x.x>y.x;
	return x.I<y.I;
}
bool cmp1(wbx x,wbx y){
	if(x.T!=y.T) return x.T<y.T;
	else
	if(x.y!=y.y) return x.y>y.y;
	else 		 return x.I<y.I;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].name>>a[i].work>>a[i].x>>a[i].y,a[i].I=i;
	sort(a+4,a+1+n,cmp);
	
	for(int i=1;i<=n;i++){
		if (i==1) a[i].work="BangZhu";
		else if (i==2||i==3) a[i].work="FuBangZhu";
		else if (i==4||i==5) a[i].work="HuFa";
		else if (i>=6&&i<=9) a[i].work="ZhangLao";
		else if (i>=10&&i<=16) a[i].work="TangZhu";
		else if (i>=17&&i<=41) a[i].work="JingYing";
		else a[i].work="BangZhong";
	}
	
	for(int i=1;i<=n;i++)
	{
		if(a[i].work=="BangZhu")  a[i].T=1;
		if(a[i].work=="FuBangZhu")a[i].T=2; 
		if(a[i].work=="HuFa")     a[i].T=3;
		if(a[i].work=="ZhangLao") a[i].T=4; 
		if(a[i].work=="TangZhu")  a[i].T=5;
		if(a[i].work=="JingYing") a[i].T=6; 
		if(a[i].work=="BangZhong")a[i].T=7;
	}
	sort(a+1,a+1+n,cmp1);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i].name<<" "<<a[i].work<<" "<<" "<<a[i].y;
		cout<<endl;
	}
	return 0;
} 
2023/12/22 13:59
加载中...