5094 | 2023-04-16 16:25:26 | szil | Multiplikátoros telebabrátor | cpp14 | Hibás válasz 0/100 | 333ms | 125296 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) {
for (auto [v, w] : g[u]) {
if (v != p) {
d[v] = d[u] ^ w;
add(v);
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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 7ms | 11196 KiB | ||||
2 | Elfogadva | 9ms | 14212 KiB | ||||
subtask2 | 0/20 | ||||||
3 | Hibás válasz | 9ms | 14424 KiB | ||||
4 | Elfogadva | 9ms | 14728 KiB | ||||
5 | Hibás válasz | 10ms | 14768 KiB | ||||
6 | Elfogadva | 9ms | 14972 KiB | ||||
7 | Hibás válasz | 9ms | 15284 KiB | ||||
8 | Hibás válasz | 9ms | 15144 KiB | ||||
9 | Elfogadva | 9ms | 15396 KiB | ||||
10 | Elfogadva | 9ms | 15604 KiB | ||||
11 | Elfogadva | 9ms | 15928 KiB | ||||
12 | Hibás válasz | 10ms | 16148 KiB | ||||
13 | Elfogadva | 10ms | 16492 KiB | ||||
14 | Hibás válasz | 9ms | 16732 KiB | ||||
15 | Hibás válasz | 9ms | 16736 KiB | ||||
16 | Hibás válasz | 8ms | 16712 KiB | ||||
subtask3 | 0/80 | ||||||
17 | Hibás válasz | 312ms | 113092 KiB | ||||
18 | Elfogadva | 256ms | 113060 KiB | ||||
19 | Hibás válasz | 254ms | 112904 KiB | ||||
20 | Elfogadva | 252ms | 112928 KiB | ||||
21 | Elfogadva | 312ms | 112988 KiB | ||||
22 | Hibás válasz | 310ms | 112976 KiB | ||||
23 | Elfogadva | 310ms | 113012 KiB | ||||
24 | Elfogadva | 256ms | 113032 KiB | ||||
25 | Hibás válasz | 256ms | 112980 KiB | ||||
26 | Hibás válasz | 307ms | 113256 KiB | ||||
27 | Elfogadva | 256ms | 113284 KiB | ||||
28 | Elfogadva | 252ms | 113132 KiB | ||||
29 | Hibás válasz | 263ms | 112652 KiB | ||||
30 | Hibás válasz | 312ms | 113012 KiB | ||||
31 | Elfogadva | 314ms | 113268 KiB | ||||
32 | Elfogadva | 319ms | 115688 KiB | ||||
33 | Elfogadva | 324ms | 118172 KiB | ||||
34 | Elfogadva | 326ms | 125296 KiB | ||||
35 | Hibás válasz | 254ms | 114444 KiB | ||||
36 | Elfogadva | 245ms | 114260 KiB | ||||
37 | Elfogadva | 241ms | 113980 KiB | ||||
38 | Elfogadva | 296ms | 113880 KiB | ||||
39 | Hibás válasz | 291ms | 113720 KiB | ||||
40 | Hibás válasz | 333ms | 113072 KiB |