Submission #516723

# Submission time Handle Problem Language Result Execution time Memory
516723 2022-01-22T03:36:35 Z KoD Trobojnica (COCI19_trobojnica) C++17
110 / 110
53 ms 5964 KB
#include <bits/stdc++.h>

using std::vector;
using std::array;
using std::pair;
using std::tuple;

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int N;
    std::cin >> N;
    vector<int> id(N), label(N), next(N);
    for (int i = 0; i < N; ++i) {
        char c;
        std::cin >> c;
        id[i] = i;
        label[i] = c - '1';
        next[i] = i + 1 == N ? 0 : i + 1;
    }
    array<int, 3> count = {};
    for (const int x : label) {
        count[x] += 1;
    }
    for (const int x : count) {
        if (x == N or x % 2 != N % 2) {
            std::cout << "NE\n";
            return 0;
        }
    }
    std::cout << "DA\n";
    int root = 0;
    for (int step = 0; step < N - 3; ++step) {
        while (label[root] == label[next[root]] or (count[label[root]] == 1 and count[label[next[root]]] == 1)) {
            root = next[root];
        }
        const int x = root;
        const int y = next[x];
        const int z = next[y];
        const int c = 3 - label[x] - label[y];
        std::cout << x + 1 << ' ' << z + 1 << ' ' << c + 1 << '\n';
        count[label[x]] -= 1;
        count[label[y]] -= 1;
        count[c] += 1;
        next[x] = z;
        label[x] = c;
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 1 ms 316 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 0 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Correct 0 ms 208 KB Output is correct
10 Correct 1 ms 320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 1 ms 316 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 0 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Correct 0 ms 208 KB Output is correct
10 Correct 1 ms 320 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 316 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 0 ms 208 KB Output is correct
15 Correct 0 ms 208 KB Output is correct
16 Correct 1 ms 312 KB Output is correct
17 Correct 0 ms 320 KB Output is correct
18 Correct 1 ms 316 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 1 ms 316 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 0 ms 208 KB Output is correct
8 Correct 0 ms 208 KB Output is correct
9 Correct 0 ms 208 KB Output is correct
10 Correct 1 ms 320 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 316 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 0 ms 208 KB Output is correct
15 Correct 0 ms 208 KB Output is correct
16 Correct 1 ms 312 KB Output is correct
17 Correct 0 ms 320 KB Output is correct
18 Correct 1 ms 316 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 208 KB Output is correct
21 Correct 51 ms 5964 KB Output is correct
22 Correct 53 ms 4860 KB Output is correct
23 Correct 0 ms 208 KB Output is correct
24 Correct 0 ms 320 KB Output is correct
25 Correct 50 ms 5828 KB Output is correct
26 Correct 1 ms 208 KB Output is correct
27 Correct 25 ms 2908 KB Output is correct
28 Correct 6 ms 2768 KB Output is correct
29 Correct 1 ms 208 KB Output is correct
30 Correct 5 ms 2780 KB Output is correct