QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#505970 | #6422. Evil Coordinate | zmrzmr | WA | 0ms | 3604kb | C++20 | 1.7kb | 2024-08-05 14:17:39 | 2024-08-05 14:17:40 |
Judging History
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()
{
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;
}
}
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 ==x && abs(my)<= abs(ansy)) || (my == 0 &&ansy == 0 && abs(mx)<= abs(ansx)))
{
cout<<"Impossible"<<endl;
return;
}
while(cnt[1]--)
{
cout<<'R';
if(cnt[2]!=0)
{
cout<<'L';
cnt[2]--;
}
}
while(cnt[2]--)
{
cout<<'L';
}
while(cnt[3]--)
{
cout<<'U';
if(cnt[4]!=0)
{
cout<<'D';
cnt[4]--;
}
}
while(cnt[4]--)
{
cout<<'D';
}
}
cout<<endl;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int tcase;
cin>>tcase;
while(tcase--)
{
slove();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3604kb
input:
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
output:
RLRLUDU UUU Impossible Impossible impossible
result:
wrong answer Line "impossible" doesn't correspond to pattern "[UDLR]{1,100000}|Impossible"