QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#648268#6422. Evil Coordinateshabi666WA 18ms3820kbC++201.7kb2024-10-17 18:01:502024-10-17 18:01:52

Judging History

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

  • [2024-10-17 18:01:52]
  • 评测
  • 测评结果:WA
  • 用时:18ms
  • 内存:3820kb
  • [2024-10-17 18:01:50]
  • 提交

answer

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e6 + 5;

bool check(string path, int x, int y) {
    int xx = 0, yy = 0;
    for (char c : path) {
        if (c == 'U')
            yy++;
        if (c == 'D')
            yy--;
        if (c == 'L')
            xx--;
        if (c == 'R')
            xx++;
        if (xx == x && yy == y) {
            return false;
        }
    }
    return true;
}

void solve() {
    int x, y;
    cin >> x >> y;
    string s;
    cin >> s;
    map<char, int> cnt;
    int ex = 0, ey = 0;
    for (char c : s) {
        cnt[c]++;
    }
    ey = cnt['U'] - cnt['D'];
    ex = cnt['R'] - cnt['L'];
    int eex = ex, eey = ey;
    // cerr << ex << ' ' << ey << endl;
    if (x == 0 && y == 0 || x == ex && y == ey) {
        cout << "Impossible" << endl;
        return;
    }

    if ( ex == 0 || ey == 0 ) {
        if ( cnt['L'] == 0 && cnt['R'] == 0 ) {
            if ( abs(y) <= abs(ey) && y * ey >= 0 ) {
                cout << "Impossible" << endl;
                return;
            }
        } else if ( cnt['U'] == 0 && cnt['D'] == 0 ) {
            if ( abs(x) <= abs(ex) && x * ex >= 0 ) {
                cout << "Impossible" << endl;
                return;
            }
        }
    }
    random_shuffle(s.begin(), s.end());
    while (1) {
        if (check(s, x, y)) {
            break;
        }
        random_shuffle(s.begin(), s.end());
    }
    cout << s << endl;
}

signed main() {
    ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);

    int T = 1;
    cin >> T;
    while (T--) solve();
    //check("RRUUUUUUUURLRLRLUDUDUD", 4, 1);

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

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

output:

LUUDRLR
UUU
Impossible
Impossible
Impossible

result:

ok 5 cases

Test #2:

score: -100
Wrong Answer
time: 18ms
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:

DUUDRR
UUR
Impossible
Impossible
Impossible
UDUURUURU
DRLRDRR
Impossible
Impossible
DLLRDRLL
LURRDDLD
Impossible
UDDLRUDLD
LL
Impossible
URULRDU
Impossible
Impossible
Impossible
LLRDRLLLRD
Impossible
RL
Impossible
Impossible
Impossible
Impossible
Impossible
RRURRLLLRU
LLLUD
Impossible
UDDUDUL
DUURDR...

result:

wrong answer case 8, participant does not find an answer but the jury does