10pts蒟蒻求助
查看原帖
10pts蒟蒻求助
565301
steven_sork楼主2023/1/8 08:55

第一个测试点对了 代码如下:

#include<bits/stdc++.h>
using namespace std;
struct guild{
	int grade,contribution,id;
	string name,position;
}a[150],n1,n2,n3;
int n;
bool cmp(guild a,guild b){
	if(a.contribution==b.contribution){
		if(a.grade==b.grade)return a.id<b.id;
		return a.grade>b.grade;
	} 
	return a.contribution>b.contribution;
}
int main(){
	cin>>n;
	int j=1;
	for(int i=1;i<=n;i++){
		guild k;
		cin>>k.name>>k.position>>k.contribution>>k.grade;
		k.id=j;
		if(k.position=="BangZhu"){
			n1=k;
		}else if(k.position=="FuBangZhu"){
			if(n2.grade!=0){
				n3=k;
			}else{
				n2=k;
			}
		}else{
			a[j++]=k;
		}
	}
	sort(a+1,a+n+1,cmp);
	cout<<n1.name<<' '<<n1.position<<' '<<n1.grade<<endl;
	cout<<n2.name<<' '<<n2.position<<' '<<n2.grade<<endl;
	cout<<n3.name<<' '<<n3.position<<' '<<n3.grade<<endl;
	for(int i=1;i<j;i++){
		cout<<a[i].name<<' ';
		if(i<=2){
			cout<<"HuFa ";
		}else if(i<=6){
			cout<<"ZhangLao ";
		}else if(i<=13){
			cout<<"TangZhu ";
		}else if(i<=38){
			cout<<"JingYing ";
		}else{
			cout<<"BangZhong ";
		}
		cout<<a[i].grade<<endl;
	}
	return 0;
} 
2023/1/8 08:55
加载中...