QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#613499#6423. Fireworkslhw#WA 0ms3532kbC++142.5kb2024-10-05 14:06:232024-10-05 14:09:39

Judging History

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

  • [2024-10-05 14:09:39]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3532kb
  • [2024-10-05 14:06:23]
  • 提交

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==r-l&&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 != r - l)
	{
		while (l)
		{
			cout << "L";
			l--;
		}
		while (r)
		{
			cout << 'R';
			r--;
		}
		while (d)
		{
			cout << "D";
			d--;
		}
		while (u)
		{
			cout << "U";
			u--;
		}
	}
	else {
		while (d)
		{
			cout << "D";
			d--;
		}
		while (u) {
			cout << "U";
			u--;
		}
		while (l)
		{
			cout << "L";
			l--;
		}
		while (r)
		{
			cout << "R";
			r--;
		}
	}
	cout << endl;
}

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

详细

Test #1:

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

input:

3
1 1 5000
1 1 1
1 2 10000

output:

DDDD
D
DDDDD

result:

wrong output format Expected double, but "DDDD" found