求助,后五个点全部WA了
查看原帖
求助,后五个点全部WA了
777246
ztlltz1234楼主2022/9/2 11:41
#include<bits/stdc++.h>
using namespace std;
int main() {
	int n;
	cin>>n;
	string a[10] = {"","BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong"};
	int    b[10] = {0,1,2,3,4,5,6,7};
	
	struct inform{
		string name;
		string jobn;
		int job;
		int banggong;
		int level;
		int number;
	};

	struct inform x[10005],temp;
	for(int i = 1; i <= n; i++) {
		cin>>x[i].name>>x[i].jobn>>x[i].banggong>>x[i].level;
		x[i].number = i;
		for(int j = 1; j <= 10; j++){
			if(x[i].jobn == a[j]){
				x[i].job = b[j];
			}
		}
	}
	
	for(int i = 1; i <= n; i++) {
		for(int j = i + 1; j <= n; j++) {
			if(x[j].banggong > x[j-1].banggong){
				
			temp = x[j]; x[j] = x[j-1]; x[j-1] = temp;
			
				    if(x[j].banggong == x[j-1].banggong){
				
				    if(x[i].number > x[j].number){
				    temp = x[i] ;x[i] = x[j]; x[j] = temp;	
					 
					}
				}
			}	
		}	
	}
	
	for(int i=1;i<=n;i++)
	{	
		if(x[i].job == 1 || x[i].job == 2) continue; 
		if(4<=i && i<=5)	x[i].job=3;
		if(6<=i && i<=9)	x[i].job=4;
		if(10<=i && i<=16)	x[i].job=5;
		if(17<=i && i<=41)	x[i].job=6;
		if(i>=42)			x[i].job=7;
	}
	
	for (int i = 1; i < n; i++)
		for (int j = i + 1; j <= n; j++)
		{
			if (x[i].job > x[j].job) 
			{
				temp = x[i]; x[i] = x[j]; x[j] = temp;
			}
			else if (x[i].job == x[j].job)
			{
				if (x[i].level < x[j].level)
				{
					temp = x[i]; x[i] = x[j]; x[j] = temp;
				}
				else if (x[i].level == x[j].level)
				{
					if (x[i].number > x[j].number)
					{
						temp = x[i] ;x[i] = x[j]; x[j] = temp;
					}
				}
			}
		}
		
 	for(int i = 1; i <= n; i++) {
 		x[i].jobn = a[x[i].job];
	}
	for(int i = 1; i <= n; i++) {
		if(i != n)
		cout<<x[i].name<<" "<<x[i].jobn<<" "<<x[i].level<<endl;
		else 
		cout<<x[i].name<<" "<<x[i].jobn<<" "<<x[i].level;
	}
 	return 0;
}
2022/9/2 11:41
加载中...