1250 | 2022-03-28 22:27:38 | k_balint | Multiplikátoros telebabrátor | cpp14 | Időlimit túllépés 20/100 | 611ms | 357856 KiB |
#include <bits/stdc++.h>
using namespace std;
const int c=1e5+5;
const int K=30;
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];
map<int,int> mp;
void dfs(int v, int p){
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);
for(int i=1;i<=n;i++){
mp[d[i]]=i;
add(d[i]);
}
for(int i=1;i<=n;i++){
int cur=maxi(d[i]);
cout << mp[cur] << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 370ms | 357020 KiB | ||||
2 | Elfogadva | 377ms | 357460 KiB | ||||
subtask2 | 20/20 | ||||||
3 | Elfogadva | 323ms | 357484 KiB | ||||
4 | Elfogadva | 277ms | 357348 KiB | ||||
5 | Elfogadva | 319ms | 357308 KiB | ||||
6 | Elfogadva | 284ms | 357452 KiB | ||||
7 | Elfogadva | 287ms | 357456 KiB | ||||
8 | Elfogadva | 293ms | 357488 KiB | ||||
9 | Elfogadva | 270ms | 357524 KiB | ||||
10 | Elfogadva | 275ms | 357632 KiB | ||||
11 | Elfogadva | 277ms | 357580 KiB | ||||
12 | Elfogadva | 282ms | 357696 KiB | ||||
13 | Elfogadva | 284ms | 357760 KiB | ||||
14 | Elfogadva | 277ms | 357752 KiB | ||||
15 | Elfogadva | 296ms | 357856 KiB | ||||
16 | Elfogadva | 303ms | 357772 KiB | ||||
subtask3 | 0/80 | ||||||
17 | Időlimit túllépés | 561ms | 188232 KiB | ||||
18 | Időlimit túllépés | 589ms | 190312 KiB | ||||
19 | Időlimit túllépés | 528ms | 192324 KiB | ||||
20 | Időlimit túllépés | 513ms | 193340 KiB | ||||
21 | Időlimit túllépés | 595ms | 191140 KiB | ||||
22 | Időlimit túllépés | 546ms | 193220 KiB | ||||
23 | Időlimit túllépés | 597ms | 194444 KiB | ||||
24 | Időlimit túllépés | 531ms | 194304 KiB | ||||
25 | Időlimit túllépés | 523ms | 189336 KiB | ||||
26 | Időlimit túllépés | 611ms | 191700 KiB | ||||
27 | Időlimit túllépés | 598ms | 193708 KiB | ||||
28 | Időlimit túllépés | 597ms | 195656 KiB | ||||
29 | Időlimit túllépés | 569ms | 192252 KiB | ||||
30 | Időlimit túllépés | 523ms | 192136 KiB | ||||
31 | Időlimit túllépés | 521ms | 186848 KiB | ||||
32 | Időlimit túllépés | 522ms | 186552 KiB | ||||
33 | Időlimit túllépés | 537ms | 188160 KiB | ||||
34 | Időlimit túllépés | 533ms | 192968 KiB | ||||
35 | Időlimit túllépés | 523ms | 189312 KiB | ||||
36 | Időlimit túllépés | 569ms | 189072 KiB | ||||
37 | Időlimit túllépés | 560ms | 187584 KiB | ||||
38 | Időlimit túllépés | 532ms | 187548 KiB | ||||
39 | Időlimit túllépés | 528ms | 187592 KiB | ||||
40 | Időlimit túllépés | 513ms | 187016 KiB |