1249 | 2022-03-28 22:21:15 | k_balint | Multiplikátoros telebabrátor | cpp14 | Időlimit túllépés 20/100 | 575ms | 358592 KiB |
#include <bits/stdc++.h>
using namespace std;
const int c=1e5+5;
const int K=31;
struct edge{
int v,w;
edge(int vv, int ww){
v=vv; w=ww;
}
edge(){
v=w=0;
}
};
struct node{
vector<int> to;
node(){
to.resize(2);
to[0]=to[1]=-1;
}
};
node trie[32*c];
int sz=1;
inline void add(int k){
int cur=0;
for(int i=K-1;i>=0;i--){
int j=(k>>i)&1;
if(trie[cur].to[j]==-1){
trie[cur].to[j]=sz++;
}
cur=trie[cur].to[j];
}
}
inline int maxi(int k){
int res=0; int cur=0;
for(int i=K-1;i>=0;i--){
int j=(k>>i)&1;
if(trie[cur].to[j^1]!=-1){
res |= 1<<i;
cur=trie[cur].to[j^1];
}
else cur=trie[cur].to[j];
}
return res^k;
}
vector<edge> adj[c];
int d[c];
vector<pair<int,int>> mp;
void dfs(int v, int p){
mp.emplace_back(make_pair(d[v],v));
add(d[v]);
for(edge x:adj[v]){
if(x.v != p){
d[x.v]=d[v]^x.w;
dfs(x.v,v);
}
}
}
inline int read(){
int res=0; char ch=getchar();
while(!isdigit(ch)){
ch=getchar();
}
while(isdigit(ch)){
res=(res<<3)+(res<<1)+ch-'0';
ch=getchar();
}
return res;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n=read();
for(int i=1;i<n;i++){
int a,b,w; a=read(); b=read(); w=read();
adj[a].emplace_back(edge(b,w));
adj[b].emplace_back(edge(a,w));
}
dfs(1,0);
sort(mp.begin(),mp.end());
for(int i=1;i<=n;i++){
int cur=maxi(d[i]);
auto it=lower_bound(mp.begin(),mp.end(),make_pair(cur,-1));
cout << it->second << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 356ms | 356856 KiB | ||||
2 | Elfogadva | 300ms | 357204 KiB | ||||
subtask2 | 20/20 | ||||||
3 | Elfogadva | 293ms | 357264 KiB | ||||
4 | Elfogadva | 356ms | 357328 KiB | ||||
5 | Elfogadva | 282ms | 357368 KiB | ||||
6 | Elfogadva | 282ms | 357328 KiB | ||||
7 | Elfogadva | 287ms | 357464 KiB | ||||
8 | Elfogadva | 333ms | 357488 KiB | ||||
9 | Elfogadva | 291ms | 357452 KiB | ||||
10 | Elfogadva | 367ms | 357652 KiB | ||||
11 | Elfogadva | 300ms | 357428 KiB | ||||
12 | Elfogadva | 333ms | 358492 KiB | ||||
13 | Elfogadva | 305ms | 358592 KiB | ||||
14 | Elfogadva | 335ms | 358384 KiB | ||||
15 | Elfogadva | 317ms | 358452 KiB | ||||
16 | Elfogadva | 296ms | 358416 KiB | ||||
subtask3 | 0/80 | ||||||
17 | Időlimit túllépés | 513ms | 185476 KiB | ||||
18 | Időlimit túllépés | 524ms | 186284 KiB | ||||
19 | Időlimit túllépés | 535ms | 184952 KiB | ||||
20 | Időlimit túllépés | 528ms | 185356 KiB | ||||
21 | Időlimit túllépés | 542ms | 186404 KiB | ||||
22 | Időlimit túllépés | 515ms | 185604 KiB | ||||
23 | Időlimit túllépés | 560ms | 185280 KiB | ||||
24 | Időlimit túllépés | 547ms | 185796 KiB | ||||
25 | Időlimit túllépés | 527ms | 185032 KiB | ||||
26 | Időlimit túllépés | 570ms | 185864 KiB | ||||
27 | Időlimit túllépés | 517ms | 186660 KiB | ||||
28 | Időlimit túllépés | 532ms | 185384 KiB | ||||
29 | Időlimit túllépés | 521ms | 185276 KiB | ||||
30 | Időlimit túllépés | 564ms | 186424 KiB | ||||
31 | Időlimit túllépés | 521ms | 186132 KiB | ||||
32 | Időlimit túllépés | 565ms | 188172 KiB | ||||
33 | Időlimit túllépés | 575ms | 187344 KiB | ||||
34 | Időlimit túllépés | 519ms | 190848 KiB | ||||
35 | Időlimit túllépés | 522ms | 185332 KiB | ||||
36 | Időlimit túllépés | 560ms | 186028 KiB | ||||
37 | Időlimit túllépés | 526ms | 187128 KiB | ||||
38 | Időlimit túllépés | 560ms | 186116 KiB | ||||
39 | Időlimit túllépés | 527ms | 185732 KiB | ||||
40 | Időlimit túllépés | 541ms | 187424 KiB |