QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#421288 | #385. 游戏 | james1BadCreeper | 100 ✓ | 19ms | 18016kb | C++14 | 2.2kb | 2024-05-25 16:11:30 | 2024-05-25 16:11:32 |
Judging History
answer
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
using namespace std;
const int N = 1e5 + 5;
int n, m, d; char s[N];
int dfn[N], low[N], num, st[N], tot;
bool ins[N], flag;
vector<int> G[N];
int col[N], cnt;
inline void tarjan(int x) {
dfn[x] = low[x] = ++num; ins[st[++tot] = x] = 1;
for (int y : G[x])
if (!dfn[y]) tarjan(y), low[x] = min(low[x], low[y]);
else if (ins[y]) low[x] = min(low[x], dfn[y]);
if (low[x] == dfn[x]) {
++cnt; int y;
do ins[y = st[tot--]] = 0, col[y] = cnt; while (x != y);
}
}
int a[N], b[N]; char x[N], y[N];
int pos[10]; char val[10]; bool c[3][3]; // 当不允许使用 i 时,使用了 i+1 为真,否则为假
inline bool solve(void) {
num = tot = cnt = 0;
for (int i = 1; i <= n << 1; ++i) dfn[i] = ins[i] = 0, G[i].clear();
for (int i = 1; i <= d; ++i) s[pos[i]] = val[i];
for (int i = 1; i <= m; ++i) {
if (s[a[i]] == x[i]) continue;
bool p = c[s[a[i]] - 'A'][x[i] - 'A'], q = c[s[b[i]] - 'A'][y[i] - 'A'];
if (s[b[i]] == y[i]) {
G[a[i] + (!p) * n].emplace_back(a[i] + p * n);
continue;
}
G[a[i] + (!p) * n].emplace_back(b[i] + (!q) * n);
G[b[i] + q * n].emplace_back(a[i] + p * n);
}
// for (int i = 1; i <= n << 1; ++i) if (!dfn[i]) tarjan(i);
for (int i = 1; i <= n; ++i) {
if (!dfn[i]) tarjan(i);
if (!dfn[i + n]) tarjan(i + n);
if (col[i] == col[i + n]) return 0;
}
for (int i = 1; i <= n; ++i) cout << char((s[i] - 'A' + (col[i + n] > col[i] ? 1 : 2)) % 3 + 'A');
return cout << "\n", 1;
}
inline void dfs(int x) {
if (flag) return; if (x > d) return flag = solve(), void();
val[x] = 'A'; dfs(x + 1);
val[x] = 'B'; dfs(x + 1);
}
int main(void) {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n >> d >> s + 1 >> m; d = 0; c[0][1] = c[1][2] = c[2][0] = 1;
for (int i = 1; i <= n; ++i) { s[i] -= 32; if (s[i] == 'X') pos[++d] = i; }
for (int i = 1; i <= m; ++i) cin >> a[i] >> x[i] >> b[i] >> y[i];
dfs(1); if (!flag) cout << "-1\n"; return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 5
Accepted
time: 2ms
memory: 7796kb
input:
2 0 ba 4 2 C 2 C 1 B 1 A 2 C 1 C 2 B 1 A
output:
CC
result:
ok
Test #2:
score: 5
Accepted
time: 2ms
memory: 7788kb
input:
2 1 xc 4 2 B 2 A 2 A 1 C 2 C 2 C 2 B 1 A
output:
CA
result:
ok
Test #3:
score: 5
Accepted
time: 1ms
memory: 6000kb
input:
5 0 bcbbb 10 1 B 1 C 3 C 1 C 2 B 5 A 1 C 1 C 2 A 5 A 3 A 1 C 2 B 1 C 3 A 1 B 1 B 4 B 1 B 4 A
output:
CACCA
result:
ok
Test #4:
score: 5
Accepted
time: 2ms
memory: 7736kb
input:
5 2 acxax 10 2 B 1 A 3 C 4 C 4 B 3 C 5 B 3 B 2 B 3 A 3 A 2 A 5 B 1 C 3 B 1 B 2 C 4 C 4 B 2 A
output:
BACCC
result:
ok
Test #5:
score: 5
Accepted
time: 0ms
memory: 7856kb
input:
10 0 abbbacabab 20 5 A 3 B 9 A 4 C 4 C 10 A 8 B 3 C 6 C 10 A 5 A 9 C 8 A 2 C 5 A 8 B 10 A 10 A 5 B 4 B 6 C 10 C 2 C 4 B 5 C 7 B 5 A 10 B 3 A 7 B 6 B 4 B 3 C 8 B 1 B 3 B 4 B 3 C 8 A 2 A
output:
CAACCABCBA
result:
ok
Test #6:
score: 5
Accepted
time: 1ms
memory: 6236kb
input:
10 4 xbbxccxbxc 20 2 A 10 A 10 C 4 C 1 A 5 A 2 A 2 A 9 C 2 B 2 B 6 C 2 B 9 A 3 B 2 B 4 B 9 A 4 A 5 A 2 B 10 A 3 B 6 A 8 C 8 B 3 B 3 B 3 B 7 A 9 C 6 C 6 A 8 C 4 A 10 A 2 C 4 B 9 C 7 B
output:
BACCABBABA
result:
ok
Test #7:
score: 5
Accepted
time: 0ms
memory: 6488kb
input:
20 0 cccccccccccccccccccc 40 15 A 13 C 6 B 19 A 3 C 5 B 20 C 6 C 1 C 10 B 10 C 7 C 13 B 17 A 1 A 3 A 15 A 15 A 13 B 18 B 14 A 4 A 1 A 3 A 4 C 14 A 1 B 6 B 2 B 8 B 3 C 15 A 1 B 17 B 6 A 17 A 12 B 6 A 8 B 1 C 15 B 1 B 18 C 3 C 2 A 8 A 14 B 6 B 15 C 9 A 17 A 10 C 15 A 7 A 8 C 6 A 18 B 12 C 14 C 10 A 9 ...
output:
BAABABAABAAAABBABAAA
result:
ok
Test #8:
score: 5
Accepted
time: 1ms
memory: 7796kb
input:
20 0 caaabacbacabbcacabaa 40 7 B 19 C 15 A 12 B 2 A 12 C 20 B 1 B 4 B 4 A 4 A 18 C 4 A 3 A 15 C 12 A 2 C 12 C 15 B 6 A 10 A 12 B 13 C 7 C 2 C 6 C 16 C 18 A 12 B 17 B 8 C 11 B 14 B 11 A 8 B 8 C 19 A 7 C 6 C 3 C 1 C 4 B 1 C 5 A 13 B 4 C 14 B 9 A 11 A 9 C 8 B 16 B 2 C 20 A 2 A 14 C 10 B 13 A 17 A 19 B ...
output:
BBCCABACBBBAAACABCCC
result:
ok
Test #9:
score: 5
Accepted
time: 1ms
memory: 7740kb
input:
20 8 xccccccxxcxcccccxxxx 40 12 A 18 C 16 C 14 C 10 B 2 C 1 A 10 A 11 A 13 B 15 A 6 B 8 A 14 B 16 A 15 B 4 C 5 C 19 C 4 B 17 C 11 A 12 B 14 C 18 B 17 B 14 A 11 C 16 C 6 C 13 C 20 B 16 B 13 C 8 B 7 C 9 B 16 B 1 B 18 A 7 B 6 A 8 B 19 A 16 C 17 A 8 A 6 A 10 A 14 B 20 C 6 B 13 C 5 A 14 A 3 C 20 B 14 C 4...
output:
CAABBABCCABAABBABCBA
result:
ok
Test #10:
score: 5
Accepted
time: 1ms
memory: 6248kb
input:
20 8 cbabxccxxxxxbaxxaaac 40 8 C 7 C 19 C 12 C 19 A 6 B 6 C 20 B 12 B 18 B 6 A 10 B 11 B 14 B 20 C 18 B 4 A 7 C 18 A 1 A 18 C 14 A 5 B 13 B 3 B 7 A 8 C 1 C 14 B 4 C 13 A 1 A 7 A 19 A 11 B 16 A 9 A 7 A 11 C 4 B 10 B 1 A 1 A 1 B 5 A 8 C 20 C 13 A 3 B 11 B 18 C 13 A 11 A 20 B 3 A 16 C 17 A 5 C 6 C 17 B...
output:
BCCCCBBBBCAACBBBCBBB
result:
ok
Test #11:
score: 5
Accepted
time: 0ms
memory: 6228kb
input:
100 0 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 200 62 A 60 B 22 A 46 A 87 A 67 B 29 A 43 A 64 B 28 B 83 B 16 A 50 A 64 B 48 A 95 A 28 B 90 A 5 A 12 A 23 B 86 A 62 A 81 B 64 B 9 B 5 A 10 B 89 B 18 B 69 B 62 A 63 A 55 A 28 B 92 B 49 A 43 A 71...
output:
ABABBBAAAAABBBBBBABBABABABAABBBBAABBAABBAABBABBBBBABBABABBAAABBABABBAABBAABABBAAAAABBBAAABBAAABBBBBB
result:
ok
Test #12:
score: 5
Accepted
time: 1ms
memory: 6276kb
input:
100 0 cabaabbaaabacbaccbccacbcaaccccbbcccbabbaaaacccbaaabbcaaabaabcaabcbbcaabaabaaccacbaabbacbbacaaabcbbca 200 94 C 31 A 29 B 48 B 89 C 52 A 49 B 11 C 10 C 66 C 90 B 49 B 80 B 19 B 26 B 54 B 20 B 65 B 52 A 80 B 51 A 33 A 94 C 6 C 18 C 60 A 87 B 45 B 12 C 7 A 26 B 57 A 89 C 54 B 4 B 29 B 39 A 67 C 22...
output:
ABCCCACCBCCBACBAAAAABBCBBCBAAACCBBBCCACBCCBAABCCCBCCBCBBABCCABBCBCABBCABBCBCABBACCCACBAAACABBBABCCBB
result:
ok
Test #13:
score: 5
Accepted
time: 1ms
memory: 7760kb
input:
100 8 cccccxccccccxccccxccccccxcccccccxccccxccccccccccxccccccccccccccccccccccccccccccccccccccxcccccccccccc 200 38 A 13 B 60 A 18 B 36 B 76 B 95 A 7 B 25 A 58 B 53 A 27 A 21 A 78 A 15 A 48 A 52 B 59 A 65 B 68 A 72 A 47 A 95 A 48 A 96 A 67 A 96 A 47 A 46 B 96 A 79 B 36 B 60 A 90 B 5 B 95 A 17 A 99 A 2...
output:
AABBACBBAABACBBABBBABAAABAAABBBACBAAABAABBAABABACBBAAAABBBBBBBAAAAABAAABBAAABBAAAABABBBBBABAAABBAABB
result:
ok
Test #14:
score: 5
Accepted
time: 1ms
memory: 7740kb
input:
100 8 ccbbcaacxxbcxacbcaabxaaccbxcaabacbccaccacbcacxcacccccccbcacbaabbabaacbbababaxabcccacaxabaaacabbcbccc 200 41 A 8 A 75 C 86 C 93 B 26 A 83 C 55 A 49 B 69 B 50 B 54 B 41 A 85 C 43 B 4 A 75 C 95 A 2 A 54 B 14 C 3 A 18 C 79 A 5 B 8 A 61 C 90 B 48 C 96 B 84 A 40 C 55 A 58 B 77 A 47 A 36 A 60 A 2 A 8...
output:
BBCAABBBCBCBBBBAABBCBBCABCBABCCBAAABCAACBCABABACAAAAAABCACACCCCCCCBBACCBABACBBCBBABBBBCCCBCACCCBABBA
result:
ok
Test #15:
score: 5
Accepted
time: 0ms
memory: 6548kb
input:
5000 0 ccbbbbacccabaacccbccaabcbcbabcabbbcbccacbbcccbccbcacbacaacbccaaacbcaabbacacabaaaccacbaccbbbccaabbbcabcbabaaccbaacacbaaccbacaccababcabbbccacbcabaabababaacccbbababbaabbbaccbabaabbbcbacbbbbbacbbabcabacbbcbaaaaaaccbaaaabccccacaaacabaabaccacabbaacaaccbbcbcaaaccbbccbccbccaacbccacbcbbacaaaaabbacbaab...
output:
-1
result:
ok
Test #16:
score: 5
Accepted
time: 0ms
memory: 6876kb
input:
5000 8 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc...
output:
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB...
result:
ok
Test #17:
score: 5
Accepted
time: 1ms
memory: 8188kb
input:
5000 8 abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab...
output:
BCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCA...
result:
ok
Test #18:
score: 5
Accepted
time: 15ms
memory: 17664kb
input:
50000 0 baabcbbaacbbabababbbabcbcbbcabccaaacccbaaabcabccccbbaacbaaacbcacbabbbbabccabaabbcabacacaaabbaccccbcacaaacbcaacbcacbbabbcbabccbbcacbacbbccacbcabcbcbcacbaacaaccbcbabaaacbcbbccbcacacccbbcabcaccacaaaaaacbcaccaacbbbaaaccaaccaaacbacbaaccaabccaababbabaaaaacbaabaccabacbcbabbcbaabacbbacbbaaabababccac...
output:
ABBAAAABBAAABABABAAABAAAAAAABAAABBBAAAABBBAABAAAAAAABBAABBBAAABAABAAAABAAABABBAAABABABABBBAABAAAAAABABBBAAABBAAABAAABAAAABAAAAAABAABAAAAABAAABAAAAAABAABBABBAAAAABABBBAAAAAAAAABABAAAAAABAABAABABBBBBBAAABAABBAAAABBBAABBAABBBAABAABBAABBAAABBABAABABBBBBAABBABAABABAAAABAAAABBABAAABAAABBBABABAAABABBAABAAA...
result:
ok
Test #19:
score: 5
Accepted
time: 19ms
memory: 18016kb
input:
50000 8 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc...
output:
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB...
result:
ok
Test #20:
score: 5
Accepted
time: 15ms
memory: 17944kb
input:
50000 8 abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca...
output:
BCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCA...
result:
ok
Extra Test:
score: 0
Extra Test Passed