5400 2023. 05. 12 15:52:41 szil Széfnyitás cpp14 Hibás válasz 0/100 7ms 5904 KiB
#include <bits/stdc++.h>

using ll = long long;
using namespace std;
const ll INF = 1e18;

const int MAXN = 151;

int a[MAXN];
int s[MAXN][2], s2[50001][2];

int timer;
struct Node {
    Node *p[2] = {nullptr, nullptr};
    int u = -1, t;
};

Node *root;

void add(vector<int> &v, int u) {
    Node *ptr = root;
    for (int i : v) {
        if (ptr->p[i] == nullptr) {
            ptr->p[i] = new Node();
            ptr->p[i]->t = timer++;
        }
        ptr = ptr->p[i];
    }
    ptr->u = u;
}

void upd(Node *v) {
    if (v->u != -1) {
        s2[v->t][0] = s2[v->t][1] = v->u;
        return;
    }
    if (v->p[0] != nullptr) {
        s2[v->t][0] = v->p[0]->t;
        upd(v->p[0]);
    }
    if (v->p[1] != nullptr) {
        s2[v->t][1] = v->p[1]->t;
        upd(v->p[1]);
    }
}

int main()
{
    srand(time(0));
    ios::sync_with_stdio(0); cin.tie(0);
    int n, k; cin >> n;
    timer = n + 1;
    root = new Node();
    root->t = timer++;
    for (int i = 1; i <= n; i++) {
        int x;
        cin >> a[i] >> s[i][0] >> s[i][1];
    }
    cin >> k;

    for (int i = 1; i <= n; i++) {
        vector<int> v;
        int u = i;
        for (int it = 0; it < n-1; it++) {
            v.push_back(a[u]);
            u = s[u][0];
        }
        add(v, s[u][0]);
    }
    upd(root);
    cout << timer-1 << " " << n+1 << "\n";
    for (int i = 1; i <= n; i++) {
        cout << a[i] << " " << s[i][0] << " " << s[i][1] << "\n";
    }
    for (int i = n+1; i < timer; i++) {
        if (s2[i][0] == 0) s2[i][0] = s2[i][1];
        if (s2[i][1] == 0) s2[i][1] = s2[i][0];
        if (s2[i][0] == 0) {
            s2[i][0] = s2[i][1] = 1;
        }
        cout << 0 << " " << s2[i][0] << " " << s2[i][1] << "\n";
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Hibás válasz 3ms 1960 KiB
2 Hibás válasz 3ms 2232 KiB
subtask2 0/16
3 Hibás válasz 3ms 2232 KiB
4 Hibás válasz 3ms 2080 KiB
5 Elfogadva 3ms 2268 KiB
6 Elfogadva 3ms 2496 KiB
7 Elfogadva 3ms 2572 KiB
8 Hibás válasz 3ms 2788 KiB
9 Hibás válasz 3ms 3012 KiB
10 Elfogadva 3ms 2992 KiB
11 Elfogadva 3ms 3120 KiB
12 Hibás válasz 3ms 3160 KiB
13 Elfogadva 3ms 3296 KiB
14 Elfogadva 3ms 3376 KiB
subtask3 0/24
15 Elfogadva 3ms 3376 KiB
16 Hibás válasz 3ms 3384 KiB
17 Elfogadva 3ms 3748 KiB
18 Elfogadva 3ms 3868 KiB
19 Elfogadva 3ms 3800 KiB
20 Elfogadva 3ms 3924 KiB
21 Elfogadva 3ms 3884 KiB
22 Hibás válasz 3ms 3948 KiB
23 Hibás válasz 3ms 4080 KiB
subtask4 0/23
24 Hibás válasz 3ms 4080 KiB
25 Hibás válasz 3ms 4116 KiB
26 Elfogadva 3ms 4120 KiB
27 Hibás válasz 3ms 4128 KiB
28 Elfogadva 3ms 4028 KiB
29 Elfogadva 3ms 4032 KiB
30 Elfogadva 3ms 4092 KiB
31 Elfogadva 3ms 4084 KiB
32 Elfogadva 3ms 4096 KiB
subtask5 0/37
33 Elfogadva 3ms 4096 KiB
34 Hibás válasz 3ms 2080 KiB
35 Elfogadva 3ms 2268 KiB
36 Elfogadva 3ms 2496 KiB
37 Elfogadva 3ms 2572 KiB
38 Hibás válasz 3ms 2788 KiB
39 Hibás válasz 3ms 3012 KiB
40 Elfogadva 3ms 2992 KiB
41 Elfogadva 3ms 3120 KiB
42 Hibás válasz 3ms 3160 KiB
43 Elfogadva 3ms 3296 KiB
44 Elfogadva 3ms 3376 KiB
45 Hibás válasz 3ms 3384 KiB
46 Elfogadva 3ms 3748 KiB
47 Elfogadva 3ms 3868 KiB
48 Elfogadva 3ms 3800 KiB
49 Elfogadva 3ms 3924 KiB
50 Elfogadva 3ms 3884 KiB
51 Hibás válasz 3ms 3948 KiB
52 Hibás válasz 3ms 4080 KiB
53 Hibás válasz 3ms 4116 KiB
54 Elfogadva 3ms 4120 KiB
55 Hibás válasz 3ms 4128 KiB
56 Elfogadva 3ms 4028 KiB
57 Elfogadva 3ms 4032 KiB
58 Elfogadva 3ms 4092 KiB
59 Elfogadva 3ms 4084 KiB
60 Elfogadva 3ms 4096 KiB
61 Hibás válasz 3ms 4040 KiB
62 Hibás válasz 3ms 4068 KiB
63 Hibás válasz 3ms 4336 KiB
64 Hibás válasz 3ms 4296 KiB
65 Hibás válasz 7ms 5336 KiB
66 Elfogadva 7ms 5384 KiB
67 Hibás válasz 7ms 5280 KiB
68 Hibás válasz 7ms 5424 KiB
69 Hibás válasz 7ms 5568 KiB
70 Hibás válasz 7ms 5596 KiB
71 Elfogadva 7ms 5836 KiB
72 Elfogadva 6ms 5904 KiB