QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#612940#6422. Evil Coordinatelhw#WA 0ms3468kbC++143.1kb2024-10-05 13:19:312024-10-05 13:20:20

Judging History

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

  • [2024-10-05 13:20:20]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3468kb
  • [2024-10-05 13:19:31]
  • 提交

answer

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;

const int N = 1e5 + 10;
#define int long long
int n, m;
int mx = 0;
int ans = 0;
int l, r, u, d;

void solve()
{
	int mx, my;
	cin >> mx >> my;
	l = r = u = d = 0;
	string s;
	cin >> s;
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] == 'L')l++;
		else if (s[i] == 'R')r++;
		else if (s[i] == 'U')u++;
		else d++;
	}

	if (mx == 0 && my == 0)
	{
		cout << "Impossible" << endl;
		return;
	}
	if (mx == 0)
	{
		if (l == 0 && r == 0&&((my<0&&u-d<=my)||(my>0&&u-d>=my))) {
			cout << "Impossible" << endl;
			return;
		}
	}
	if (my == 0)
	{
		if (u == 0 && d == 0&&((mx<0&&r-l<=mx)||(mx>0&&r-l>=mx)))
		{
			cout << "Impossible" << endl;
			return;
		}
	}

	if (((mx<0&&mx==r-l)&&(my<0&&my==u-d))|| ((mx > 0 && mx == r - l) && (my < 0 && my == u - d))|| ((mx < 0 && mx == r - l) && (my > 0 && my == u - d))|| ((mx > 0 && mx == r - l) && (my > 0 && my == u - d))) {
		cout << "Impossible" << endl;
		return;
	}
	
	if (mx==0)
	{
		if (l >= r)
		{
			while (l) {
				cout << "L";
				l--;
			}
		}
		else {
			while (r)
			{
				cout << "R";
				r--;
			}
		}
		if (my < 0)
		{
			while (u)
			{
				cout << "U";
				u--;
			}
			while (d)
			{
				cout << "D";
				d--;
			}
		}
		else {
			while (d)
			{
				cout << "D";
				d--;
			}
			while (u)
			{
				cout << "U";
				u--;
			}
			
		}
		if (r !=0)
		{
			while (r)
			{
				cout << "R";
				r--;
			}
		}
		if(l!=0) {
			while (l) {
				cout << "L";
				l--;
			}
		}
		cout << endl;
		return;
	}

	if (my == 0)
	{
		if (u >= d)
		{
			while (u)
			{
				cout << "U";
				u--;
			}
		}
		else {
			while (d)
			{
				cout << "D";
				d--;
			}
		}
		if (mx < 0)
		{while (r)
			{
				cout << "R";
				r--;
			}
			while (l) {
				cout << "L";
				l--;
			}
			
		}
		else {
			while (l) {
				cout << "L";
				l--;
			}
			while (r)
			{
				cout << "R";
				r--;
			}
		}
		if (d !=0)
		{
			while (d)
			{
				cout << "D";
				d--;
			}
		}
		if(u!=0) {
			while (u)
			{
				cout << "U";
				u--;
			}
		}
		cout << endl;
		return;
	}
	if (mx > 0)
	{
		if(my>0)
		while (d)
		{
			d--;
			cout << "D";
		}
		else {
			while (u)
			{
				u--;
				cout << "U";
			}
		}
		while (l)
		{
			l--;
			cout << "L";
		}
		while (r)
		{
			r--;
			cout << "R";
		}
		if (my > 0)
		{
			while (u)
			{
				u--;
				cout << "U";
			}
		}
		else {
			while (d)
			{
				d--;
				cout << "D";
			}
		}
	}
	if (mx < 0)
	{
		if (my > 0)
			while (d)
			{
				d--;
				cout << "D";
			}
		else {
			while (u)
			{
				u--;
				cout << "U";
			}
		}
		while (r)
		{
			r--;
			cout << "R";
		}
		while (l)
		{
			l--;
			cout << "L";
		}
		if (my > 0)
		{
			while (u)
			{
				u--;
				cout << "U";
			}
		}
		else {
			while (d)
			{
				d--;
				cout << "D";
			}
		}
	}
}

signed main()
{
	int T;
	cin >> T;
	while (T--)
	{
		solve();
	}
}

详细

Test #1:

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

input:

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

output:

DLLRRUUUUU
Impossible
Impossible
Impossible

result:

wrong answer case 1, participant's output is not a permutation of the input