QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#612940 | #6422. Evil Coordinate | lhw# | WA | 0ms | 3468kb | C++14 | 3.1kb | 2024-10-05 13:19:31 | 2024-10-05 13:20:20 |
Judging History
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