QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#198884#6422. Evil CoordinatersjWA 0ms3640kbC++141.1kb2023-10-03 18:17:162023-10-03 18:17:17

Judging History

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

  • [2023-10-03 18:17:17]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3640kb
  • [2023-10-03 18:17:16]
  • 提交

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;
}

详细

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