70分求调
查看原帖
70分求调
752628
l56983楼主2024/12/30 21:31
#include <bits/stdc++.h>

using namespace std;

int T;

int n,m,r,s;

struct fscard
{
	int f;
	int p;
}fs[200];

struct frcard
{
	int f;
	int p;
	
}fr[200];

int cardnum[2];

bool cmp1(fscard c,fscard d)
{
	return c.p<d.p; 
}

bool cmp2(frcard c,frcard d)
{
	return c.p<d.p;
}

int main()
{
	cin>>T;

	while(T>0)
	{
		cin>>n>>m>>r>>s;

		for(int i=1;i<=n;i++)
		{
			cin>>fs[i].f;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>fs[i].p;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>fr[i].f;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>fr[i].p;
		}		
		cardnum[1]=n;
		cardnum[2]=n;
		
		sort(fs+1,fs+n+1,cmp1);
		sort(fr+1,fr+n+1,cmp2);
		
		int winner=0;
		int flag=0;
		int tmpf=0,tmpp=0;
		int cardhave=0;	
		while(1)
		{
			if(s==1)
			{
				if(flag==0)
				{
					int minn=INT_MAX;
					int minnp=INT_MAX;
					int zb;
					for(int j=1;j<=n;j++)
					{
						if(fs[j].p!=0)
						{
							minnp=min(minnp,fs[j].p);
							break;
						}
					}			
					for(int i=1;i<=n;i++)
					{
	
						if(fs[i].p==minnp&&fs[i].f<=minn&&fs[i].f!=0)
						{
							minn=fs[i].f;
							zb=i;
						}
					}
					cardnum[1]--;
					if(cardnum[1]==0)
					{
						cout<<"FS wins!"<<endl;
						T--;
						break;
					}
					tmpf=fs[zb].f;
					tmpp=fs[zb].p;
					fs[zb].f=0;
					fs[zb].p=0;		
					flag=1;		
					s=2;
				}
				else
				{
					for(int i=1;i<=n;i++)
					{
						if(fs[i].f==tmpf&&fs[i].p>tmpp)
						{
							cardhave=1;
							tmpf=fs[i].f;
							tmpp=fs[i].p;
							fs[i].f=0;
							fs[i].p=0;
							cardnum[1]--;
							if(cardnum[1]==0)
							{
								cout<<"FS wins!"<<endl;
								T--;
								break;
							}						
							s=2;
							break;
						} 
					}
					if(cardhave==0)
					{
						tmpf=0;
						tmpp=0;
						flag=0;
						s=2;
						
					}
					cardhave=0;
				}		
			}
			else if(s==2)
			{
				if(flag==0)
				{
					int minn=INT_MAX;
					int minnp=INT_MAX;
					int zb;
					for(int j=1;j<=n;j++)
					{
						if(fr[j].p!=0)
						{
							minnp=min(minnp,fr[j].p);
							break;
						}
					}			
					for(int i=1;i<=n;i++)
					{
		
						if(fr[i].p==minnp&&fr[i].f<=minn&&fr[i].f!=0)
						{
							minn=fr[i].f;
							zb=i;
						}
						
					}
					cardnum[2]--;
					if(cardnum[2]==0)
					{
						cout<<"FR wins!"<<endl;
						T--;
						break;
					
					}
					tmpf=fr[zb].f;
					tmpp=fr[zb].p;
					fr[zb].f=0;
					fr[zb].p=0;
					flag=1;
					s=1;								
				}
				else
				{
					for(int i=1;i<=n;i++)
					{
						if(fr[i].f==tmpf&&fr[i].p>tmpp)
						{
							cardhave=1;
							tmpf=fr[i].f;
							tmpp=fr[i].p;
							fr[i].f=0;
							fr[i].p=0;
							cardnum[2]--;
							if(cardnum[2]==0)
							{
								cout<<"FR wins!"<<endl;
								T--;
								break;	
							}
							s=1;
							break;
						} 
					}
					if(cardhave==0)
					{
						tmpf=0;
						tmpp=0;
						flag=0;
						s=1;
					}
					cardhave=0;
				}
			}	
		}
	}
	return 0;
} 
2024/12/30 21:31
加载中...