只过了第一个点!帮帮可怜的孩子吧!玄关。。。
查看原帖
只过了第一个点!帮帮可怜的孩子吧!玄关。。。
1069088
lxy_ayaka楼主2024/5/10 18:53
#include<bits/stdc++.h>
using namespace std;

int n;


struct people{
	int achievement,level,order;
	string name,job;
}StarMoonHome[111];

void exchange(people a,people b){
	people c;
	c.achievement=a.achievement;
	c.job=a.job;
	c.level=a.level;
	c.name=a.name;
	c.order=a.order;
	a.achievement=b.achievement;
	a.job=b.job;
	a.level=b.level;
	a.name=b.name;
	a.order=b.order;
	b.achievement=c.achievement;
	b.job=c.job;
	b.level=c.level;
	b.name=c.name;
	b.order=c.order;
}

bool luyidu1(people a,people b){
	return a.achievement>b.achievement;
}

bool luyidu2(people a,people b){
	if(a.job==b.job) return a.level>b.level;
}

int main(){
	//freopen("P1786.txt","r",stdin);
	cin >> n;
	
	if(n==0) return 0;
	
	for(int i=1;i<=n;i++){
		cin >> StarMoonHome[i].name >> StarMoonHome[i].job;
		cin >> StarMoonHome[i].achievement >> StarMoonHome[i].level;
		StarMoonHome[i].order=i;
	}
	
	sort(StarMoonHome+3+1,StarMoonHome+n+1,luyidu1);
	
	for(int i=4;i<=5;i++) StarMoonHome[i].job="HuFa";
	if(StarMoonHome[5].achievement==StarMoonHome[6].achievement){
		if(StarMoonHome[5].order>StarMoonHome[6].order){
			exchange(StarMoonHome[5],StarMoonHome[6]);
			StarMoonHome[5].job="HuFa";
		}
	}
	for(int i=6;i<=9;i++) StarMoonHome[i].job="ZhangLao";
	if(StarMoonHome[9].achievement==StarMoonHome[10].achievement){
		if(StarMoonHome[9].order>StarMoonHome[10].order){
			exchange(StarMoonHome[9],StarMoonHome[10]);
			StarMoonHome[9].job="ZhangLao";
		}
	}
	for(int i=10;i<=16;i++) StarMoonHome[i].job="TangZhu";
	if(StarMoonHome[16].achievement==StarMoonHome[17].achievement){
		if(StarMoonHome[16].order>StarMoonHome[17].order){
			exchange(StarMoonHome[16],StarMoonHome[17]);
			StarMoonHome[16].job="TangZhu";
		}
	}
	for(int i=17;i<=41;i++) StarMoonHome[i].job="JingYing";
	if(StarMoonHome[41].achievement==StarMoonHome[42].achievement){
		if(StarMoonHome[41].order>StarMoonHome[42].order){
			exchange(StarMoonHome[41],StarMoonHome[42]);
			StarMoonHome[41].job="JingYing";
		}
	}
	for(int i=42;i<=n;i++) StarMoonHome[i].job="BangZhong";
	
	sort(StarMoonHome+1,StarMoonHome+n+1,luyidu2);
	
	for(int i=1;i<=n;i++){
		cout << StarMoonHome[i].name << " " << StarMoonHome[i].job << " ";
		cout << StarMoonHome[i].level << endl;
	}

	
	
}

救命!!!!!只过了第一个点!

2024/5/10 18:53
加载中...