QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#619315 | #6422. Evil Coordinate | xDarkbluex# | WA | 34ms | 4012kb | C++14 | 3.6kb | 2024-10-07 13:51:02 | 2024-10-07 13:51:03 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
int T,mx,my;
int cu,cd,cl,cr;
string s;
void UD()
{
if(mx==0&&my==1)
{
for(int i=1;i<=min(cu,cd);i++)
{
printf("DU");
}
}
else
{
for(int i=1;i<=min(cu,cd);i++)
{
printf("UD");
}
}
}
void LR()
{
if(mx==1&&my==0)
{
for(int i=1;i<=min(cl,cr);i++)
{
printf("RL");
}
}
else
{
for(int i=1;i<=min(cl,cr);i++)
{
printf("LR");
}
}
}
void solve()
{
scanf("%lld%lld",&mx,&my);
cin>>s;
cu=cd=cl=cr=0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='U')
{
cu++;
}
else if(s[i]=='D')
{
cd++;
}
else if(s[i]=='L')
{
cl++;
}
else if(s[i]=='R')
{
cr++;
}
}
if(mx==0&&my==0)
{
printf("Impossible\n");
return ;
}
if(mx==cl-cr&&my==cu-cd)
{
printf("Impossible\n");
return ;
}
if(cu==cd&&cl==cr)
{
UD();
LR();
}
else if(cu==cd&&cl!=cr)
{
if(my==0)
{
if(cu==0&&mx*(cl-cr)>=0&&abs(mx)<=abs(cl-cr))
{
printf("Impossible\n");
return ;
}
if(cu==0)
{
LR();
if(cl>cr)
{
for(int i=1;i<=cl-cr;i++)
{
printf("L");
}
}
else
{
for(int i=1;i<=cr-cl;i++)
{
printf("R");
}
}
}
else
{
for(int i=1;i<=cu;i++)
{
printf("U");
}
for(int i=1;i<=cl;i++)
{
printf("L");
}
for(int i=1;i<=cr;i++)
{
printf("R");
}
for(int i=1;i<=cd;i++)
{
printf("D");
}
}
}
else
{
UD();
LR();
if(cl>cr)
{
for(int i=1;i<=cl-cr;i++)
{
printf("L");
}
}
else
{
for(int i=1;i<=cr-cl;i++)
{
printf("R");
}
}
}
}
else if(cu!=cd&&cl==cr)
{
if(mx==0)
{
if(cl==0&&my*(cu-cd)>=0&&abs(my)<=abs(cu-cd))
{
printf("Impossible\n");
return ;
}
if(cl==0)
{
UD();
if(cu>cd)
{
for(int i=1;i<=cu-cd;i++)
{
printf("U");
}
}
else
{
for(int i=1;i<=cd-cu;i++)
{
printf("D");
}
}
}
else
{
for(int i=1;i<=cl;i++)
{
printf("L");
}
for(int i=1;i<=cu;i++)
{
printf("U");
}
for(int i=1;i<=cd;i++)
{
printf("D");
}
for(int i=1;i<=cr;i++)
{
printf("R");
}
}
}
else
{
UD();
LR();
if(cu>cd)
{
for(int i=1;i<=cu-cd;i++)
{
printf("U");
}
}
else
{
for(int i=1;i<=cd-cu;i++)
{
printf("D");
}
}
}
}
else
{
UD();
LR();
if((mx==0&&my*(cu-cd)>=0&&abs(my)<=abs(cu-cd))||(my==cu-cd&&mx*(cl-cr)>=0&&abs(mx)<=abs(cl-cr)))
{
if(cl>cr)
{
for(int i=1;i<=cl-cr;i++)
{
printf("L");
}
}
else
{
for(int i=1;i<=cr-cl;i++)
{
printf("R");
}
}
if(cu>cd)
{
for(int i=1;i<=cu-cd;i++)
{
printf("U");
}
}
else
{
for(int i=1;i<=cd-cu;i++)
{
printf("D");
}
}
}
else
{
if(cu>cd)
{
for(int i=1;i<=cu-cd;i++)
{
printf("U");
}
}
else
{
for(int i=1;i<=cd-cu;i++)
{
printf("D");
}
}
if(cl>cr)
{
for(int i=1;i<=cl-cr;i++)
{
printf("L");
}
}
else
{
for(int i=1;i<=cr-cl;i++)
{
printf("R");
}
}
}
}
printf("\n");
}
signed main()
{
cin>>T;
while(T--)
{
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3744kb
input:
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
output:
UDLRLRU UUU Impossible Impossible Impossible
result:
ok 5 cases
Test #2:
score: -100
Wrong Answer
time: 34ms
memory: 4012kb
input:
11109 6 0 RUDUDR 2 0 URU 0 0 UDRU 0 0 R -1 1 LDUUDDRUUL -1 5 RRUUUDUUU -8 4 RRDRLDR 2 0 UD 0 0 UUDD 3 -2 LDDLLLRR 3 -2 LDRURLDD 1 0 RRL -1 0 DUDDLLRDU -4 0 LL -1 -1 DLRLDLUDUR 1 4 URDULUR 0 0 DDUUDUDDDD 0 2 UU 1 0 RRULD 0 -2 LDLRLLDRRL 0 1 RLRLLRLUR -3 0 RL 0 0 D 0 0 L 0 0 DDLRRUDRUD 0 0 DULU 2 0 RR...
output:
UURRDD UUR Impossible Impossible UDUDUDLRUL UDRRUUUUU LRDDRRR UD Impossible LRLRDDLL UDLRLRDD RLR UDUDLRDDL LL UDUDLRLRDL UDLRUUR Impossible Impossible ULRRD LRLRLRLLDD Impossible LR Impossible Impossible Impossible Impossible LRLRLRLRRR LRLRLRRRUU UDLLL R UUULDDD UDUDRR LRLRLRL UULRRDD UDUDUUURR UD...
result:
wrong answer case 5, participant's output goes through forbidden coordinate