QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#506047#6422. Evil CoordinateUmokWA 20ms3820kbC++202.8kb2024-08-05 14:55:352024-08-05 14:55:35

Judging History

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

  • [2024-08-05 14:55:35]
  • 评测
  • 测评结果:WA
  • 用时:20ms
  • 内存:3820kb
  • [2024-08-05 14:55:35]
  • 提交

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++;
    }
    PII pot = {l + r, u + d};
    if (pot.first == a && pot.second == b || a == 0 && b == 0)
    {
        cout << "Impossible" << endl;
        return;
    }

    int x = r - l, y = u - d;

    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()
{
    IOS;
    int t;
    cin >> t;
    while (t--)
        solve();

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 20ms
memory: 3820kb

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
DDDUUUURRL
LLDUUUUUU
RLLLLDD
UD
Impossible
LLRRRRDD
LLRRUDDD
LLR
UUDDDDRRL
RR
UUDDDRRRLL
DUUULLR
Impossible
Impossible
UDLLR
RRRRRLLLDD
URRRRLLLL
RL
Impossible
Impossible
Impossible
Impossible
LLLLLLRRRR
RRRLLLLLUU
RRRUD
Impossible
RUUUDDD
UUDDLL
RRRRLLL
RLLUUDD
LLDD...

result:

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