QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#506060#6422. Evil CoordinateUmokWA 28ms3636kbC++202.7kb2024-08-05 15:00:362024-08-05 15:00:37

Judging History

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

  • [2024-08-05 15:00:37]
  • 评测
  • 测评结果:WA
  • 用时:28ms
  • 内存:3636kb
  • [2024-08-05 15:00:36]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define endl '\n'
const int N = 2e5 + 5;
#define int long long
typedef pair<int, int> PII;
#define MAX LONG_LONG_MAX
#define mod 10007
#define eps 1e-7
int ar[N];
int l, r, d, u, a, b;
void solve()
{
    l = d = r = u = 0;
    string s;
    cin >> a >> b;

    cin >> s;

    for (char c : s)
    {
        if (c == 'L')
            l++;
        else if (c == 'R')
            r++;
        else if (c == 'U')
            u++;
        else
            d++;
    }
    int x = r - l, y = u - d;

    PII pot = {x, y};
    if (pot.first == a && pot.second == b || a == 0 && b == 0)
    {
        cout << "Impossible" << endl;
        return;
    }

    if (x == a && a == 0)
    {
        if ((u - d > b && b > 0) || (u - d < b && b < 0))
        {
            cout << "Impossible" << endl;
            return;
        }
    }
    if (b == y && b == 0)
    {
        if ((r - l > a && a > 0) || (r - l < a && a < 0))
        {
            cout << "Impossible" << endl;
            return;
        }
    }

    if (a == x)
    {

        if (b > 0)
        {
            for (int i = 1; i <= d; i++)
                cout << "D";
            for (int i = 1; i <= u; i++)
                cout << "U";
        }
        else
        {
            for (int i = 1; i <= u; i++)
                cout << "U";
            for (int i = 1; i <= d; i++)
                cout << "D";
        }
        if (a > 0)
        {
            for (int i = 1; i <= r; i++)
                cout << "L";
            for (int i = 1; i <= l; i++)
                cout << "R";
        }
        else
        {
            for (int i = 1; i <= l; i++)
                cout << "R";
            for (int i = 1; i <= r; i++)
                cout << "L";
        }
    }
    else
    {

        if (a > 0)
        {
            for (int i = 1; i <= r; i++)
                cout << "L";
            for (int i = 1; i <= l; i++)
                cout << "R";
        }
        else
        {
            for (int i = 1; i <= l; i++)
                cout << "R";
            for (int i = 1; i <= r; i++)
                cout << "L";
        }
        if (b > 0)
        {
            for (int i = 1; i <= d; i++)
                cout << "D";
            for (int i = 1; i <= u; i++)
                cout << "U";
        }
        else
        {
            for (int i = 1; i <= u; i++)
                cout << "U";
            for (int i = 1; i <= d; i++)
                cout << "D";
        }
    }
    cout << endl;
}

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

    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3592kb

input:

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

output:

LLRRDUU
UUU
Impossible
Impossible
Impossible

result:

ok 5 cases

Test #2:

score: -100
Wrong Answer
time: 28ms
memory: 3636kb

input:

11109
6 0
RUDUDR
2 0
URU
0 0
UDRU
0 0
R
-1 1
LDUUDDRUUL
-1 5
RRUUUDUUU
-8 4
RRDRLDR
2 0
UD
0 0
UUDD
3 -2
LDDLLLRR
3 -2
LDRURLDD
1 0
RRL
-1 0
DUDDLLRDU
-4 0
LL
-1 -1
DLRLDLUDUR
1 4
URDULUR
0 0
DDUUDUDDDD
0 2
UU
1 0
RRULD
0 -2
LDLRLLDRRL
0 1
RLRLLRLUR
-3 0
RL
0 0
D
0 0
L
0 0
DDLRRUDRUD
0 0
DULU
2 0
RR...

output:

LLUUDD
LUU
Impossible
Impossible
Impossible
LLDUUUUUU
RLLLLDD
UD
Impossible
LLRRRRDD
LLRRUDDD
Impossible
UUDDDDRRL
RR
Impossible
DUUULLR
Impossible
Impossible
Impossible
RRRRRLLLDD
Impossible
RL
Impossible
Impossible
Impossible
Impossible
Impossible
RRRLLLLLUU
RRRUD
Impossible
RUUUDDD
UUDDLL
Impossi...

result:

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