5091 | 2023-04-16 16:07:26 | szil | Multiplikátoros telebabrátor | cpp14 | Hibás válasz 0/100 | 328ms | 123420 KiB |
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const int MAXN = 100001;
vector<pair<int, int>> g[MAXN];
int d[MAXN];
struct Node {
Node *a[2] = {nullptr, nullptr};
int u = -1;
void add(int i, int n, int v) {
if (i >= 0) {
int bit = (n >> i) & 1;
if (a[bit] == nullptr) {
a[bit] = new Node();
}
a[bit]->add(i-1, n, v);
} else {
u = v;
}
}
int qry(int i, int n) {
if (u != -1) return u;
int bit = (n >> i) & 1;
if (a[!bit] != nullptr) {
return a[!bit]->qry(i-1, n);
} else {
assert(a[bit] != nullptr);
return a[bit]->qry(i-1, n);
}
}
};
Node *root;
void dfs(int u, int p = 0) {
for (auto [v, w] : g[u]) {
if (v != p) {
d[v] = d[u] ^ w;
root->add(31, d[v], 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++) {
int ans = root->qry(31, d[i]);
assert(ans != -1);
cout << ans << " ";
}
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 | 4ms | 6672 KiB | ||||
2 | Elfogadva | 8ms | 9492 KiB | ||||
subtask2 | 0/20 | ||||||
3 | Hibás válasz | 8ms | 9724 KiB | ||||
4 | Elfogadva | 8ms | 9948 KiB | ||||
5 | Hibás válasz | 8ms | 10172 KiB | ||||
6 | Elfogadva | 8ms | 10304 KiB | ||||
7 | Hibás válasz | 8ms | 10376 KiB | ||||
8 | Hibás válasz | 8ms | 10492 KiB | ||||
9 | Elfogadva | 8ms | 10704 KiB | ||||
10 | Elfogadva | 8ms | 10924 KiB | ||||
11 | Elfogadva | 8ms | 11284 KiB | ||||
12 | Hibás válasz | 8ms | 11500 KiB | ||||
13 | Elfogadva | 8ms | 11668 KiB | ||||
14 | Hibás válasz | 8ms | 11560 KiB | ||||
15 | Hibás válasz | 8ms | 11732 KiB | ||||
16 | Hibás válasz | 8ms | 11732 KiB | ||||
subtask3 | 0/80 | ||||||
17 | Hibás válasz | 238ms | 108048 KiB | ||||
18 | Elfogadva | 287ms | 108044 KiB | ||||
19 | Hibás válasz | 279ms | 108264 KiB | ||||
20 | Elfogadva | 233ms | 108544 KiB | ||||
21 | Elfogadva | 238ms | 108492 KiB | ||||
22 | Hibás válasz | 277ms | 108476 KiB | ||||
23 | Elfogadva | 275ms | 108504 KiB | ||||
24 | Elfogadva | 286ms | 108692 KiB | ||||
25 | Hibás válasz | 237ms | 108568 KiB | ||||
26 | Hibás válasz | 282ms | 109180 KiB | ||||
27 | Elfogadva | 233ms | 109196 KiB | ||||
28 | Elfogadva | 287ms | 109060 KiB | ||||
29 | Hibás válasz | 328ms | 108588 KiB | ||||
30 | Hibás válasz | 298ms | 108612 KiB | ||||
31 | Elfogadva | 286ms | 108920 KiB | ||||
32 | Elfogadva | 298ms | 111728 KiB | ||||
33 | Elfogadva | 273ms | 114696 KiB | ||||
34 | Elfogadva | 308ms | 123420 KiB | ||||
35 | Hibás válasz | 264ms | 109932 KiB | ||||
36 | Elfogadva | 268ms | 109740 KiB | ||||
37 | Elfogadva | 257ms | 109500 KiB | ||||
38 | Elfogadva | 216ms | 109580 KiB | ||||
39 | Hibás válasz | 219ms | 109272 KiB | ||||
40 | Hibás válasz | 218ms | 108660 KiB |