求调20pts
查看原帖
求调20pts
646208
Hughpig楼主2023/5/26 21:08
#include<bits/stdc++.h>
using namespace std;

int t,n,m,r,s,f1[107],f2[107],p1[107],p2[107],fs,fr,p,f,r_;
bool st,removed[107],removed_[107];

int main()
{
	ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin>>t;
    if(t>1)return 1;
    while(t--)
    {
    	memset(removed,0,sizeof(removed));
    	memset(removed_,0,sizeof(removed_));
    	cin>>n>>m>>r>>s;
    	for(int i=1;i<=n;i++)cin>>f1[i];
    	for(int i=1;i<=n;i++)cin>>p1[i];
    	for(int i=1;i<=n;i++)cin>>f2[i];
    	for(int i=1;i<=n;i++)cin>>p2[i];
    	fs=fr=n;
    	st=1;
    	while(fs&&fr)
    	{
    		p=0;
    		if(s==1)
    		{
    			if(st){
    			for(int i=1;i<=n;i++)
    			{
    				if(removed[i])continue;
    				if(p1[i]<p1[p]||(p1[i]==p1[p]&&f1[i]<f1[p]))p=i;
				}
				f=f1[p],r_=p1[p];
				removed[p]=1;
    			fs--;
    			st=0;
    		    }
    		    else
    		    {
    		    	for(int i=1;i<=n;i++)
    		    	{
    		    		if(removed[i])continue;
    		    		if(f1[i]==f&&p1[i]>r_&&p1[i]<p1[p])p=i;
					}
					if(!p)
					{
						st=1;
						s=2;
						continue;
					}
					f=f1[p],r_=p1[p];
				    removed[p]=1;
    			    fs--;
				}
    			s=2;
			}
			else
			{
				if(st){
    			for(int i=1;i<=n;i++)
    			{
    				if(removed_[i])continue;
    				if(p2[i]<p2[p]||(p2[i]==p2[p]&&f2[i]<f2[p]))p=i;
				}
				    f=f2[p],r_=p2[p];
					removed_[p]=1;
    				fr--;
    				st=0;
    		    }
    		    else
    		    {
    		    	for(int i=1;i<=n;i++)
    		    	{
    		    		if(removed_[i])continue;
    		    		if(f2[i]==f&&p2[i]>r_&&p2[i]<p2[p])p=i;
					}
					if(!p)
					{
						st=1;
						s=1;
						continue;
					}
					f=f2[p],r_=p2[p];
					removed_[p]=1;
    				fr--;
				}
    			s=1;
			}
		}
		if(!fs)cout<<"FS wins!\n";
		else cout<<"FR wins!\n";
	}
	return 0;
}

下次入门赛能不能不放大%你啊/fn

感觉至少黄/hsh

2023/5/26 21:08
加载中...