QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#506059#6422. Evil CoordinatezmrzmrWA 0ms3588kbC++203.7kb2024-08-05 15:00:202024-08-05 15:00:20

Judging History

你现在查看的是最新测评结果

  • [2024-08-05 15:00:20]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3588kb
  • [2024-08-05 15:00:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ll long long
// R = x+1 = 1   L = x-1 = 2   U = y + 1 = 3  D = y - 1 = 4
int cnt[5];
void slove()
{
	for(int i = 1 ; i <= 4 ; i++ )
		cnt[i] = 0 ;
	int flag = 0 ;
	ll x,y;
	x = 0;
	y = 0;
	ll mx,my;
	string s;
	cin>>mx>>my;
	cin>>s;
	for(int i = 0 ; i < s.size() ; i++)
	{
		if(s[i]=='R')
		{
			cnt[1]++;
			x++;
//			cout<<x<<endl;
			if(x==mx&&y==my)
			flag = 1 ;
			continue;
		}
		if(s[i]=='L')
		{
			cnt[2]++;
			x= x - 1;
			if(x==mx&&y==my)
			flag = 1 ;
			continue;
		}
		if(s[i]=='U')
		{
			cnt[3]++;
			y = y + 1;
//			cout<<x<<" "<<y<<endl; 
			if(x==mx&&y==my)
			flag = 1 ;
			continue;
		}
		if(s[i]=='D')
		{
			cnt[4]++;
			y  = y - 1;
			if(x==mx&&y==my)
			flag = 1 ;
			continue;
		}
	}
	cout<<flag<<endl;
		if(mx==0 && my == 0 )
		{
			cout<<"Impossible"<<endl;
			return;
	}

		if(flag == 0 ) 
		{
			cout<<s<<endl;
			return ;
		}
		if(flag == 1 )
		{
			
			ll ansx = cnt[1] - cnt[2] ;
			ll ansy = cnt[3] - cnt[4] ; 
			if(ansx == mx && ansy == my )
			{	
				cout<<"Impossible"<<endl;
				return;
			}
			if( (mx == 0 &&ansx ==0 && abs(my)<= abs(ansy)) || (my == 0 &&ansy == 0 && abs(mx)<= abs(ansx)))
			{
				cout<<"Impossible"<<endl;
					return;
			}
			if(abs(mx) == abs(ansx) )
			{
				if(mx!=1)
			{
				while(cnt[1]--)
			{
				putchar('R');
//				cout<<'R';
				if(cnt[2]!=0)
				{
					putchar('L');
//					cout<<'L';
					cnt[2]--;
				}
			}
			while(cnt[2]--)
			{
				putchar('L');
//				cout<<'L';
			}
			}
			else
			{
				while(cnt[2]--)
			{
				putchar('L');
//				cout<<'L';
				if(cnt[1]!=0)
				{
					putchar('R');
//					cout<<'R';
					cnt[1]--;
				}
			}
			while(cnt[1]--)
			{
				putchar('R');
//				cout<<'L';
			}
			}
			
			if(my!=1)
			{
				while(cnt[3]--)
			{
				putchar('U');
//				cout<<'U';
				if(cnt[4]!=0)
				{
					putchar('D');
//					cout<<'D';
					cnt[4]--;
				}
			}
			while(cnt[4]--)
			{
				putchar('D');
//				cout<<'D';
			}
			
			}
			else
			{
			while(cnt[4]--)
			{
				putchar('D');
//				cout<<'D';
				if(cnt[3]!=0)
				{
					putchar('U');
//					cout<<'U';
					cnt[3]--;
				}
			}
			while(cnt[3]--)
			{
				putchar('U');
//				cout<<'U';
			}
			}
			}
			else
			{
				if(mx!=1)
			{
				while(cnt[1]--)
			{
				putchar('R');
//				cout<<'R';
				if(cnt[2]!=0)
				{
					putchar('L');
//					cout<<'L';
					cnt[2]--;
				}
			}
			while(cnt[2]--)
			{
				putchar('L');
//				cout<<'L';
			}
			}
			else
			{
				while(cnt[2]--)
			{
				putchar('L');
//				cout<<'L';
				if(cnt[1]!=0)
				{
					putchar('R');
//					cout<<'R';
					cnt[1]--;
				}
			}
			while(cnt[1]--)
			{
				putchar('R');
//				cout<<'L';
			}
			}
			
			if(my!=1)
			{
				while(cnt[3]--)
			{
				putchar('U');
//				cout<<'U';
				if(cnt[4]!=0)
				{
					putchar('D');
//					cout<<'D';
					cnt[4]--;
				}
			}
			while(cnt[4]--)
			{
				putchar('D');
//				cout<<'D';
			}
			
			}
			else
			{
			while(cnt[4]--)
			{
				putchar('D');
//				cout<<'D';
				if(cnt[3]!=0)
				{
					putchar('U');
//					cout<<'U';
					cnt[3]--;
				}
			}
			while(cnt[3]--)
			{
				putchar('U');
//				cout<<'U';
			}
			}
			
			}
			
		}
		cout<<endl;
	} 

int main()
{
//	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int tcase;
	cin>>tcase;
	while(tcase--)
	{
		if(tcase == 11109 - 323)
		{
			int a, b;
			string ss;
			cin >> a>>b>>ss;
			cout << a<<" "<<b<<" "<<ss<<endl;
			return 0;
		}
		slove();
	}
	return 0;
 } 
 /*5
-3 0
LLLDD*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3588kb

input:

5
1 1
RURULLD
0 5
UUU
0 3
UUU
0 2
UUU
0 0
UUU

output:

1
LRLRDUU
0
UUU
1
Impossible
1
Impossible
0
Impossible

result:

wrong answer Line "1" doesn't correspond to pattern "[UDLR]{1,100000}|Impossible"