50952023-04-16 16:29:05szilMultiplikátoros telebabrátorcpp14Elfogadva 100/100379ms122232 KiB
#include <bits/stdc++.h>

using ll = long long;
using namespace std;

const int MAXN = 200001;

vector<pair<int, int>> g[MAXN];
int d[MAXN];

struct Node {
    Node *a[2];
    int u = -1;

    Node() {
        a[0] = a[1] = nullptr;
    }
};

Node *root;

void add(int u) {
    Node *cur = root;
    for (int i = 31; i >= 0; i--) {
        int x = (d[u] >> i) & 1;
        if (cur->a[x] == nullptr) cur->a[x] = new Node();
        cur = cur->a[x];
    }
    cur->u = u;
}

void dfs(int u, int p = 0) {
    add(u);
    for (auto [v, w] : g[u]) {
        if (v != p) {
            d[v] = d[u] ^ w;
            dfs(v, u);
        }
    }
}

void solve() {
    root = new Node();
    int n; cin >> n;
    for (int i = 0; i < n - 1; i++) {
        int a, b, w; cin >> a >> b >> w;
        g[a].push_back({b, w});
        g[b].push_back({a, w});
    }
    dfs(1);
    for (int i = 1; i <= n; i++) {
        Node *cur = root;
        for (int j = 31; j >= 0; j--) {
            int x = (d[i] >> j) & 1;
            if (cur->a[!x] != nullptr) cur = cur->a[!x];
            else cur = cur->a[x];
        }
        cout << cur->u << " ";
    }
    cout << "\n";
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms11148 KiB
2Elfogadva10ms14108 KiB
subtask220/20
3Elfogadva9ms14332 KiB
4Elfogadva9ms14532 KiB
5Elfogadva9ms14744 KiB
6Elfogadva10ms14956 KiB
7Elfogadva9ms15280 KiB
8Elfogadva9ms15228 KiB
9Elfogadva9ms15416 KiB
10Elfogadva9ms15324 KiB
11Elfogadva9ms15632 KiB
12Elfogadva10ms15852 KiB
13Elfogadva9ms15940 KiB
14Elfogadva9ms16020 KiB
15Elfogadva9ms16048 KiB
16Elfogadva9ms16040 KiB
subtask380/80
17Elfogadva254ms112324 KiB
18Elfogadva314ms112312 KiB
19Elfogadva314ms112328 KiB
20Elfogadva256ms112436 KiB
21Elfogadva314ms112396 KiB
22Elfogadva312ms112416 KiB
23Elfogadva314ms112364 KiB
24Elfogadva307ms112352 KiB
25Elfogadva317ms112224 KiB
26Elfogadva310ms112544 KiB
27Elfogadva252ms112656 KiB
28Elfogadva308ms112668 KiB
29Elfogadva317ms112008 KiB
30Elfogadva314ms112256 KiB
31Elfogadva280ms112652 KiB
32Elfogadva379ms114528 KiB
33Elfogadva370ms116516 KiB
34Elfogadva365ms122232 KiB
35Elfogadva270ms114016 KiB
36Elfogadva263ms113824 KiB
37Elfogadva266ms113568 KiB
38Elfogadva243ms113460 KiB
39Elfogadva237ms113248 KiB
40Elfogadva238ms112900 KiB