QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#198884 | #6422. Evil Coordinate | rsj | WA | 0ms | 3640kb | C++14 | 1.1kb | 2023-10-03 18:17:16 | 2023-10-03 18:17:17 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int a[4];
char s[N];
pair<int,int> g(int x,int d) {
if(x==0) return make_pair(0,d);
else if(x==1) return make_pair(0,-d);
else if(x==2) return make_pair(-d,0);
else return make_pair(d,0);
}
void print(int x) {
char c;
if(x==0)c='U';
if(x==1)c='D';
if(x==2)c='L';
if(x==3)c='R';
int t=a[x];
while(t--)putchar(c);
}
int p[4];
void get() {
int x,y,i;
cin>>x>>y;
cin>>(s+1); int n=strlen(s+1);
if(x==0&&y==0) return puts("Impossible"),void();
for(i=1;i<=n;i++) {
switch(s[i]) {
case 'U': a[0]++; break;
case 'D': a[1]++; break;
case 'L': a[2]++; break;
case 'R': a[3]++; break;
}
}
for(i=0;i<4;i++) p[i]=i;
int ok=0;
do {
int d=0,q=0,np,nq,ans=1;
for(i=0;i<4;i++) {
auto tmp=g(p[i],a[p[i]]);
np=d+tmp.first,nq=q+tmp.second;
if(d==np&&d==x&&((q<=y&&y<=nq)||(nq<=y&&y<=q))) ans=0;
d=np,q=np;
}
if(ans) {
for(i=0;i<4;i++) print(p[i]); putchar('\n');
ok=1;
break;
}
} while(next_permutation(p,p+4));
if(!ok) puts("Impossible");
}
int main() {
int T; cin>>T;
while(T--) get();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3640kb
input:
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
output:
UUDLLRR DLLUUUUURR DLLUUUUUUUURR DLLUUUUUUUUUUURR Impossible
result:
wrong answer case 2, participant's output is not a permutation of the input