QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#505979 | #6422. Evil Coordinate | zmrzmr | WA | 0ms | 3784kb | C++20 | 1.8kb | 2024-08-05 14:23:30 | 2024-08-05 14:23:30 |
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]--)
{
putchar('R');
// cout<<'R';
if(cnt[2]!=0)
{
putchar('L');
// cout<<'L';
cnt[2]--;
}
}
while(cnt[2]--)
{
putchar('L');
// cout<<'L';
}
while(cnt[3]--)
{
putchar('U');
// cout<<'U';
if(cnt[4]!=0)
{
putchar('D');
// cout<<'D';
cnt[4]--;
}
}
while(cnt[4]--)
{
putchar('D');
// 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;
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3784kb
input:
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
output:
UUU Impossible Impossible Impossible RLRLUDU
result:
wrong answer Line "" doesn't correspond to pattern "[UDLR]{1,100000}|Impossible"