5401 2023. 05. 12 15:55:28 szil Széfnyitás cpp14 Hibás válasz 23/100 8ms 6336 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], b[50001];
bool bits[MAXN];

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, int d = 0) {
    b[v->t] = bits[d];
    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], d + 1);
    }
    if (v->p[1] != nullptr) {
        s2[v->t][1] = v->p[1]->t;
        upd(v->p[1], d + 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 = 0; i < n; i++) {
        bits[i] = rand() % 2;
    }

    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][bits[it]];
        }
        add(v, s[u][bits[n-1]]);
    }
    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 << b[i] << " " << s2[i][0] << " " << s2[i][1] << "\n";
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1844 KiB
2 Elfogadva 3ms 2056 KiB
subtask2 0/16
3 Elfogadva 3ms 2056 KiB
4 Elfogadva 3ms 2244 KiB
5 Elfogadva 3ms 2456 KiB
6 Hibás válasz 3ms 2800 KiB
7 Hibás válasz 3ms 2876 KiB
8 Elfogadva 3ms 3220 KiB
9 Elfogadva 2ms 3176 KiB
10 Hibás válasz 3ms 3260 KiB
11 Hibás válasz 3ms 3472 KiB
12 Elfogadva 3ms 3520 KiB
13 Hibás válasz 3ms 3612 KiB
14 Hibás válasz 3ms 3824 KiB
subtask3 0/24
15 Hibás válasz 3ms 3824 KiB
16 Elfogadva 3ms 3924 KiB
17 Elfogadva 3ms 4276 KiB
18 Elfogadva 3ms 4296 KiB
19 Elfogadva 3ms 4232 KiB
20 Elfogadva 3ms 4408 KiB
21 Elfogadva 3ms 4396 KiB
22 Elfogadva 3ms 4360 KiB
23 Elfogadva 3ms 4368 KiB
subtask4 23/23
24 Elfogadva 3ms 4368 KiB
25 Elfogadva 3ms 4492 KiB
26 Elfogadva 3ms 4348 KiB
27 Elfogadva 3ms 4512 KiB
28 Elfogadva 3ms 4436 KiB
29 Elfogadva 3ms 4428 KiB
30 Elfogadva 3ms 4440 KiB
31 Elfogadva 3ms 4696 KiB
32 Elfogadva 3ms 4792 KiB
subtask5 0/37
33 Elfogadva 3ms 4792 KiB
34 Elfogadva 3ms 2244 KiB
35 Elfogadva 3ms 2456 KiB
36 Hibás válasz 3ms 2800 KiB
37 Hibás válasz 3ms 2876 KiB
38 Elfogadva 3ms 3220 KiB
39 Elfogadva 2ms 3176 KiB
40 Hibás válasz 3ms 3260 KiB
41 Hibás válasz 3ms 3472 KiB
42 Elfogadva 3ms 3520 KiB
43 Hibás válasz 3ms 3612 KiB
44 Hibás válasz 3ms 3824 KiB
45 Elfogadva 3ms 3924 KiB
46 Elfogadva 3ms 4276 KiB
47 Elfogadva 3ms 4296 KiB
48 Elfogadva 3ms 4232 KiB
49 Elfogadva 3ms 4408 KiB
50 Elfogadva 3ms 4396 KiB
51 Elfogadva 3ms 4360 KiB
52 Elfogadva 3ms 4368 KiB
53 Elfogadva 3ms 4492 KiB
54 Elfogadva 3ms 4348 KiB
55 Elfogadva 3ms 4512 KiB
56 Elfogadva 3ms 4436 KiB
57 Elfogadva 3ms 4428 KiB
58 Elfogadva 3ms 4440 KiB
59 Elfogadva 3ms 4696 KiB
60 Elfogadva 3ms 4792 KiB
61 Elfogadva 4ms 4880 KiB
62 Elfogadva 6ms 5608 KiB
63 Elfogadva 6ms 5560 KiB
64 Elfogadva 7ms 5756 KiB
65 Elfogadva 7ms 5812 KiB
66 Elfogadva 7ms 5916 KiB
67 Elfogadva 7ms 5836 KiB
68 Elfogadva 7ms 5940 KiB
69 Elfogadva 7ms 5792 KiB
70 Elfogadva 8ms 6252 KiB
71 Elfogadva 7ms 6336 KiB
72 Elfogadva 7ms 6264 KiB