277132026-05-11 17:27:37LazurAndrasMultiplikátoros telebabrátorcpp17Elfogadva 100/100204ms27820 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<vector<pair<int, int>>>g;
vector<int>dist;

void dfs(int v)
{
    for(auto [u, d] : g[v]) if(dist[u] == -1) {dist[u] = dist[v] ^ d; dfs(u);}
}

int veg[3200001];
int t[3200001][2];
int cnt = 1;

void update(int u)
{
    int v = dist[u];
    int x = 1;
    for(int i = 31; i >= 0; i--)
    {
        int k = (v >> i) & 1;
        if(t[x][k] == 0) t[x][k] = ++cnt;
        x = t[x][k];
    }
    veg[x] = u+1;
}

int query(int v)
{
    int x = 1;
    for(int i = 31; i >= 0; i--)
    {
        int k = (v >> i) & 1;
        if(t[x][k ^ 1]) x = t[x][k ^ 1];
        else x = t[x][k];
    }
    return veg[x];
}

signed main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);
	cin >> n;
    g.resize(n); dist.resize(n, -1);
    for(int i = 1; i < n; i++)
    {
        int a, b, c; cin >> a >> b >> c; --a; --b;
        g[a].push_back({b, c});
        g[b].push_back({a, c});
    }
    dist[0] = 0;
    dfs(0);
    for(int i = 0; i < n; i++) update(i);
    for(int u : dist)
    {
        cout << query(u) << " ";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
2Elfogadva3ms1012 KiB
subtask220/20
3Elfogadva3ms1012 KiB
4Elfogadva3ms820 KiB
5Elfogadva3ms820 KiB
6Elfogadva3ms820 KiB
7Elfogadva3ms824 KiB
8Elfogadva3ms820 KiB
9Elfogadva3ms820 KiB
10Elfogadva3ms820 KiB
11Elfogadva4ms820 KiB
12Elfogadva4ms1004 KiB
13Elfogadva4ms1076 KiB
14Elfogadva4ms1268 KiB
15Elfogadva3ms1076 KiB
16Elfogadva3ms820 KiB
subtask380/80
17Elfogadva160ms24384 KiB
18Elfogadva187ms24356 KiB
19Elfogadva159ms24376 KiB
20Elfogadva188ms24372 KiB
21Elfogadva193ms24476 KiB
22Elfogadva162ms24372 KiB
23Elfogadva163ms24372 KiB
24Elfogadva188ms24372 KiB
25Elfogadva163ms24368 KiB
26Elfogadva195ms24536 KiB
27Elfogadva163ms24464 KiB
28Elfogadva190ms24628 KiB
29Elfogadva193ms24372 KiB
30Elfogadva192ms24372 KiB
31Elfogadva164ms24372 KiB
32Elfogadva165ms25064 KiB
33Elfogadva167ms25812 KiB
34Elfogadva204ms27820 KiB
35Elfogadva184ms25056 KiB
36Elfogadva151ms24956 KiB
37Elfogadva155ms24628 KiB
38Elfogadva152ms24704 KiB
39Elfogadva174ms24736 KiB
40Elfogadva173ms24492 KiB