55662023-07-27 11:25:49zsomborSzéfnyitáscpp17Elfogadva 100/10025ms12268 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva8ms8876 KiB
2Elfogadva8ms9168 KiB
subtask216/16
3Elfogadva8ms8800 KiB
4Elfogadva8ms9284 KiB
5Elfogadva8ms9396 KiB
6Elfogadva8ms9892 KiB
7Elfogadva8ms9780 KiB
8Elfogadva8ms9988 KiB
9Elfogadva8ms10216 KiB
10Elfogadva8ms10424 KiB
11Elfogadva8ms10512 KiB
12Elfogadva8ms10792 KiB
13Elfogadva8ms10596 KiB
subtask324/24
14Elfogadva8ms10956 KiB
15Elfogadva8ms11244 KiB
16Elfogadva8ms11396 KiB
17Elfogadva8ms11532 KiB
18Elfogadva8ms11604 KiB
19Elfogadva8ms11460 KiB
20Elfogadva8ms11636 KiB
21Elfogadva8ms11456 KiB
subtask423/23
22Elfogadva8ms11492 KiB
23Elfogadva8ms11640 KiB
24Elfogadva8ms11572 KiB
25Elfogadva8ms11692 KiB
26Elfogadva8ms11888 KiB
27Elfogadva8ms11840 KiB
28Elfogadva8ms11732 KiB
29Elfogadva8ms11992 KiB
subtask537/37
30Elfogadva8ms8800 KiB
31Elfogadva8ms9284 KiB
32Elfogadva8ms9396 KiB
33Elfogadva8ms9892 KiB
34Elfogadva8ms9780 KiB
35Elfogadva8ms9988 KiB
36Elfogadva8ms10216 KiB
37Elfogadva8ms10424 KiB
38Elfogadva8ms10512 KiB
39Elfogadva8ms10792 KiB
40Elfogadva8ms10596 KiB
41Elfogadva8ms10956 KiB
42Elfogadva8ms11244 KiB
43Elfogadva8ms11396 KiB
44Elfogadva8ms11532 KiB
45Elfogadva8ms11604 KiB
46Elfogadva8ms11460 KiB
47Elfogadva8ms11636 KiB
48Elfogadva8ms11456 KiB
49Elfogadva8ms11492 KiB
50Elfogadva8ms11640 KiB
51Elfogadva8ms11572 KiB
52Elfogadva8ms11692 KiB
53Elfogadva8ms11888 KiB
54Elfogadva8ms11840 KiB
55Elfogadva8ms11732 KiB
56Elfogadva8ms11992 KiB
57Elfogadva14ms11932 KiB
58Elfogadva17ms11940 KiB
59Elfogadva20ms12064 KiB
60Elfogadva17ms12172 KiB
61Elfogadva24ms12268 KiB
62Elfogadva25ms12172 KiB
63Elfogadva23ms12172 KiB
64Elfogadva25ms12076 KiB
65Elfogadva25ms12076 KiB
66Elfogadva25ms12168 KiB
67Elfogadva24ms12176 KiB
68Elfogadva25ms12256 KiB