5566 2023. 07. 27 11:25:49 zsombor Széfnyitás cpp17 Elfogadva 100/100 25ms 12268 KiB
#include <iostream>
#include <vector>
#include <set>
using namespace std;

int n, k;
vector <int> B(3e4, 0);
vector <vector <int>> T(3e4, vector <int>(2, 1));
vector <vector <int>> t(3e4, vector <int>(2, 1));
vector <int> cur(3e4, 1);

void solve(set <int> s) {
    int i = *s.begin(), J = cur[i], j = cur[i];
    vector <set <int>> v(n + 1);
    for (int cnt = 0; cnt < n; cnt++) {
        for (int l = 1; l <= n; l++) {
            if (!s.count(l)) continue;
            if (B[cur[l]] != B[j]) {
                s.erase(l);
                v[j].insert(l);
            }
            cur[l] = T[cur[l]][B[j]];
        }
        j = T[j][B[j]];
    }
    j = J;
    for (int cnt = 0; cnt < n; cnt++) {
        if (v[j].empty()) { j = T[j][B[j]]; continue; }
        t[(i - 1) * n + j][1 - B[j]] = ((*v[j].begin()) - 1) * n + cur[*v[j].begin()];
        solve(v[j]);
        v[j].clear();
        j = T[j][B[j]];
    }
}

int main() { 
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> B[i] >> T[i][0] >> T[i][1];
    cin >> k;
    set <int> s;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            t[(i - 1) * n + j][0] = (i - 1) * n + T[j][0];
            t[(i - 1) * n + j][1] = (i - 1) * n + T[j][1];
        }
        cur[i] = i;
        s.insert(i);
    }
    solve(s);
    cout << n * n << " 1\n";
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cout << B[j] << " " << t[(i - 1) * n + j][0] << " " << t[(i - 1) * n + j][1] << "\n";
        }
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 8ms 8876 KiB
2 Elfogadva 8ms 9168 KiB
subtask2 16/16
3 Elfogadva 8ms 8800 KiB
4 Elfogadva 8ms 9284 KiB
5 Elfogadva 8ms 9396 KiB
6 Elfogadva 8ms 9892 KiB
7 Elfogadva 8ms 9780 KiB
8 Elfogadva 8ms 9988 KiB
9 Elfogadva 8ms 10216 KiB
10 Elfogadva 8ms 10424 KiB
11 Elfogadva 8ms 10512 KiB
12 Elfogadva 8ms 10792 KiB
13 Elfogadva 8ms 10596 KiB
subtask3 24/24
14 Elfogadva 8ms 10956 KiB
15 Elfogadva 8ms 11244 KiB
16 Elfogadva 8ms 11396 KiB
17 Elfogadva 8ms 11532 KiB
18 Elfogadva 8ms 11604 KiB
19 Elfogadva 8ms 11460 KiB
20 Elfogadva 8ms 11636 KiB
21 Elfogadva 8ms 11456 KiB
subtask4 23/23
22 Elfogadva 8ms 11492 KiB
23 Elfogadva 8ms 11640 KiB
24 Elfogadva 8ms 11572 KiB
25 Elfogadva 8ms 11692 KiB
26 Elfogadva 8ms 11888 KiB
27 Elfogadva 8ms 11840 KiB
28 Elfogadva 8ms 11732 KiB
29 Elfogadva 8ms 11992 KiB
subtask5 37/37
30 Elfogadva 8ms 8800 KiB
31 Elfogadva 8ms 9284 KiB
32 Elfogadva 8ms 9396 KiB
33 Elfogadva 8ms 9892 KiB
34 Elfogadva 8ms 9780 KiB
35 Elfogadva 8ms 9988 KiB
36 Elfogadva 8ms 10216 KiB
37 Elfogadva 8ms 10424 KiB
38 Elfogadva 8ms 10512 KiB
39 Elfogadva 8ms 10792 KiB
40 Elfogadva 8ms 10596 KiB
41 Elfogadva 8ms 10956 KiB
42 Elfogadva 8ms 11244 KiB
43 Elfogadva 8ms 11396 KiB
44 Elfogadva 8ms 11532 KiB
45 Elfogadva 8ms 11604 KiB
46 Elfogadva 8ms 11460 KiB
47 Elfogadva 8ms 11636 KiB
48 Elfogadva 8ms 11456 KiB
49 Elfogadva 8ms 11492 KiB
50 Elfogadva 8ms 11640 KiB
51 Elfogadva 8ms 11572 KiB
52 Elfogadva 8ms 11692 KiB
53 Elfogadva 8ms 11888 KiB
54 Elfogadva 8ms 11840 KiB
55 Elfogadva 8ms 11732 KiB
56 Elfogadva 8ms 11992 KiB
57 Elfogadva 14ms 11932 KiB
58 Elfogadva 17ms 11940 KiB
59 Elfogadva 20ms 12064 KiB
60 Elfogadva 17ms 12172 KiB
61 Elfogadva 24ms 12268 KiB
62 Elfogadva 25ms 12172 KiB
63 Elfogadva 23ms 12172 KiB
64 Elfogadva 25ms 12076 KiB
65 Elfogadva 25ms 12076 KiB
66 Elfogadva 25ms 12168 KiB
67 Elfogadva 24ms 12176 KiB
68 Elfogadva 25ms 12256 KiB