求助,第一个点WA
查看原帖
求助,第一个点WA
421517
棠棠棠棠棠এ楼主2021/8/31 18:44
#include<bits/stdc++.h>
using namespace std;

struct NODE{
	string mz,zw;
	int bg,dj,h;
}a[410];

void s(int i,int j)
{
	string t;int n;
	t=a[i].mz ;a[i].mz =a[j].mz ;a[j].mz =t;
	t=a[i].zw ;a[i].zw =a[j].zw ;a[j].zw =t;
	n=a[i].bg ;a[i].bg =a[j].bg ;a[j].bg =n;
	n=a[i].dj ;a[i].dj =a[j].dj ;a[j].dj =n;
	n=a[i].h  ;a[i].h=a[j].h ;a[j].h =n;
}

int main()
{
	int n,bh=2,i=4;
	cin>>n;
	while(i<=n)
	{
		string k,b;
		int c,d;
		cin>>k>>b>>c>>d;
		if(b=="BangZhu")
		{
			a[1].mz =k;
			a[1].zw =b;
			a[1].bg =c;
			a[1].dj =d;
			a[1].h=1;
		}
		else if(b=="FuBangZhu")
		{
			a[bh].mz =k;
			a[bh].zw =b;
			a[bh].bg =c;
			a[bh].dj =d;
			a[bh].h =bh;
			bh++;
		}
		else
		{
			a[i].mz =k;
			a[i].zw =b;
			a[i].bg =c;
			a[i].dj =d;
			a[i].h =i;
			i++;
		}
	}
	for(int i=4;i<=n;i++)
	    for(int j=5;j<=n;j++)
	        if(a[j-1].bg <a[j].bg ) s(j-1,j);
	while(bh<=n)
	{
		if(bh>=4&&bh<=5) a[bh].zw ="HuFa";
		if(bh>=6&&bh<=9) a[bh].zw ="ZhangLao";
		if(bh>=10&&bh<=16) a[bh].zw ="TangZhu";
		if(bh>=17&&bh<=41) a[bh].zw ="JingYing";
		if(bh>=42) a[bh].zw="BangZhong";
		bh++;
	}
	for(int i=4;i<=n;i++)
	    for(int j=5;j<=n;j++)
	        if(a[j-1].zw ==a[j].zw)
	        {
	        	if(a[j-1].dj <a[j].dj) 
	            	s(j-1,j);
	            if(a[j-1].dj ==a[j].dj &&a[j-1].h >a[j].h)
	                s(j-1,j);
			}
	for(int i=1;i<=n;i++)
	    cout<<a[i].mz <<" "<<a[i].zw <<" "<<a[i].dj <<endl;
	return 0;
}
2021/8/31 18:44
加载中...