| 1247 | 2022-03-28 22:08:50 | k_balint | Multiplikátoros telebabrátor | cpp14 | Time limit exceeded 20/100 | 601ms | 130880 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;
}
};
vector<node> trie=vector<node>(1);
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]=trie.size();
trie.push_back(node());
}
cur=trie[cur].to[j];
}
}
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];
unordered_map<int,int> mp;
void dfs(int v, int p){
mp[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);
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin>>n;
for(int i=1;i<n;i++){
int a,b,w; cin>>a>>b>>w;
adj[a].push_back(edge(b,w));
adj[b].push_back(edge(a,w));
}
dfs(1,0);
for(int i=1;i<=n;i++){
cout << mp[maxi(d[i])] << ' ';
}
}| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 4ms | 6580 KiB | ||||
| 2 | Accepted | 12ms | 11860 KiB | ||||
| subtask2 | 20/20 | ||||||
| 3 | Accepted | 12ms | 11968 KiB | ||||
| 4 | Accepted | 12ms | 12024 KiB | ||||
| 5 | Accepted | 12ms | 12068 KiB | ||||
| 6 | Accepted | 14ms | 12032 KiB | ||||
| 7 | Accepted | 12ms | 12100 KiB | ||||
| 8 | Accepted | 12ms | 12124 KiB | ||||
| 9 | Accepted | 10ms | 12176 KiB | ||||
| 10 | Accepted | 10ms | 12224 KiB | ||||
| 11 | Accepted | 10ms | 12316 KiB | ||||
| 12 | Accepted | 13ms | 12332 KiB | ||||
| 13 | Accepted | 10ms | 12488 KiB | ||||
| 14 | Accepted | 12ms | 12420 KiB | ||||
| 15 | Accepted | 10ms | 12452 KiB | ||||
| 16 | Accepted | 13ms | 12512 KiB | ||||
| subtask3 | 0/80 | ||||||
| 17 | Time limit exceeded | 558ms | 93656 KiB | ||||
| 18 | Time limit exceeded | 547ms | 95572 KiB | ||||
| 19 | Time limit exceeded | 521ms | 96532 KiB | ||||
| 20 | Time limit exceeded | 507ms | 98564 KiB | ||||
| 21 | Time limit exceeded | 513ms | 100724 KiB | ||||
| 22 | Time limit exceeded | 573ms | 102812 KiB | ||||
| 23 | Time limit exceeded | 583ms | 104900 KiB | ||||
| 24 | Time limit exceeded | 596ms | 107200 KiB | ||||
| 25 | Time limit exceeded | 597ms | 109192 KiB | ||||
| 26 | Time limit exceeded | 519ms | 111116 KiB | ||||
| 27 | Time limit exceeded | 527ms | 108568 KiB | ||||
| 28 | Time limit exceeded | 509ms | 110636 KiB | ||||
| 29 | Time limit exceeded | 529ms | 112528 KiB | ||||
| 30 | Time limit exceeded | 592ms | 114808 KiB | ||||
| 31 | Time limit exceeded | 566ms | 114296 KiB | ||||
| 32 | Time limit exceeded | 601ms | 114636 KiB | ||||
| 33 | Time limit exceeded | 597ms | 117636 KiB | ||||
| 34 | Time limit exceeded | 600ms | 121692 KiB | ||||
| 35 | Time limit exceeded | 600ms | 120612 KiB | ||||
| 36 | Time limit exceeded | 596ms | 122600 KiB | ||||
| 37 | Time limit exceeded | 575ms | 124544 KiB | ||||
| 38 | Time limit exceeded | 538ms | 126724 KiB | ||||
| 39 | Time limit exceeded | 579ms | 128696 KiB | ||||
| 40 | Time limit exceeded | 591ms | 130880 KiB | ||||