10分求助!QAQ
查看原帖
10分求助!QAQ
867681
23_VS_24楼主2023/10/5 11:18
#include<bits/stdc++.h>
using namespace std;
struct kkk{
	string work;
	int num;
}a[8];
struct kong{
	string name,job;
	int bang_gong,level;
	int see;//号码
};
bool tmp(kong a,kong b){
	if(a.level!=b.level) return a.level>b.level;
	return a.see<b.see;
}
bool tmpp(kong a,kong b){
	if(a.bang_gong!=b.bang_gong) return a.bang_gong>b.bang_gong;
}
bool tmppp(kong a,kong b){
	if(a.job==b.job) return a.level>b.level;
}
int main()
{
	int n,people=1;
	cin>>n;
	kong *p=new kong[n+11];
	a[1].work="BangZhu",a[1].num=1;
	a[2].work="FuBangZhu",a[2].num=2;
	a[3].work="HuFa",a[3].num=2;
	a[4].work="ZhangLao",a[4].num=4;
	a[5].work="TangZhu",a[5].num=7;
	a[6].work="JingYing",a[6].num=25;
	a[7].work="BangZhong",a[7].num=1e7;
	for(int i=1;i<=n;i++){
		cin>>p[i].name>>p[i].job>>p[i].bang_gong>>p[i].level;
		p[i].see=i;
	}
	sort(p+1,p+n+1,tmp);
	sort(p+4,p+n+1,tmpp);
	for(int j=1;j<=7;j++){
		for(int k=1;k<=a[j].num;k++){
			p[people].job=a[j].work;
			people++;
			if(people>n) goto here;
		}
	}
	here:{
		sort(p+1,p+n+1,tmppp);
		for(int i=1;i<=n;i++){
			cout<<p[i].name<<' '<<p[i].job<<' '<<p[i].level<<endl;
		}
	}

	
	
	
	
	
	
	
	
	
	
	delete[] p;
	return 0;
}
2023/10/5 11:18
加载中...