QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#506371#6422. Evil CoordinateGrunrayWA 0ms3548kbC++202.8kb2024-08-05 16:59:062024-08-05 16:59:06

Judging History

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

  • [2024-08-05 16:59:06]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3548kb
  • [2024-08-05 16:59:06]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e3 + 5;
int a[N];
int b[N]; int n, m;
int c[N];
int coun[N];
double l[N], r[N];
void solve()
{
	int edx = 0, edy = 0;
	int x, y;
	cin >> x >> y;
	string s;
	cin >> s;
	memset(a, 0, sizeof(a));
	if (x == 0 && y == 0) {
		cout << "Impossible" << endl;
		return;
	}

	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] == 'U') a[0]++;
		if (s[i] == 'D') a[1]++;
		if (s[i] == 'L') a[2]++;
		if (s[i] == 'R') a[3]++;
	}
	edx = a[3] - a[2];
	edy = a[0] - a[1];

	if (edy == y && edx == x) {
		cout << "Impossible" << endl;
		return;
	}
	
	if ((a[2] == 0 && a[3] == 0))
	{
		if (x != 0) {
			cout << s << '\n';
			return;
		}
		else if (y > edy && y <= 0) {
			for (int i = 0; i < a[1]; i++)cout << 'D';
			for (int i = 0; i < a[0]; i++)cout << 'U';
			cout << '\n';
			return;
		}
		else if (y >= 0 && edy >= y)
		{
			cout << "Impossible" << endl;
			return;
		}
		else if (edy >= 0 && edy <= y && y >= 0)
		{
			cout << "Impossible" << endl;
			return;
		}
		else if (edy >= 0 && edy <= y)
		{
			for (int i = 1; i <= a[0]; i++) cout << 'U';
			for (int i = 1; i <= a[1]; i++) cout << 'D';
			printf("\n");
			return;
		}
		else if (y < edy && edy <= 0) {
			for (int i = 1; i <= a[0]; i++) cout << 'U';
			for (int i = 1; i <= a[1]; i++) cout << 'D';
			printf("\n");
			return;
		}
		else {
			cout << "Impossible" << endl;
			return;
		}
		
	}
	else if ((a[0] == 0 && a[1] == 0))
	{
		if (y != 0) {
			cout << s << '\n';
			return;
		}
		if (x >= 0 && edx >= x)
		{
			cout << "Impossible" << endl;
			return;

		}
		if (x <= 0 && edx <= x)
		{
			cout << "Impossible" << endl;
			return;

		}
	}

	if (edy == y)
	{
		if (y == 0)
		{
			cout << "U";
			for (int i = 0; i < a[3]; i++) cout << "R";
			for (int i = 0; i < a[2]; i++) cout << "L";
			for (int i = 0; i < a[0] - 1; i++) cout << "U";
			for (int i = 0; i < a[1]; i++) cout << "D";


		}
		else
		{
			for (int i = 0; i < a[3]; i++) cout << "R";
			for (int i = 0; i < a[2]; i++) cout << "L";
			for (int i = 0; i < a[1]; i++) cout << "D";
			for (int i = 0; i < a[0]; i++) cout << "U";
		}


	}

	else if (edx == x)
	{
		for (int i = 0; i < a[1]; i++) cout << "D";
		for (int i = 0; i < a[0]; i++) cout << "U";
		for (int i = 0; i < a[3]; i++) cout << "R";
		for (int i = 0; i < a[2]; i++) cout << "L";
	}
	else
	{
		for (int i = 0; i < a[3]; i++) cout << "R";
		for (int i = 0; i < a[2]; i++) cout << "L";
		for (int i = 0; i < a[1]; i++) cout << "D";
		for (int i = 0; i < a[0]; i++) cout << "U";
	}
	cout << endl;

}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		solve();
	}

}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3548kb

input:

5
1 1
RURULLD
0 5
UUU
0 3
UUU
0 2
UUU
0 0
UUU

output:

RRLLDUU
Impossible
Impossible
Impossible
Impossible

result:

wrong answer case 2, participant does not find an answer but the jury does