Submission #1159061

#TimeUsernameProblemLanguageResultExecution timeMemory
1159061emptypringlescanTraffic (IOI10_traffic)C++20
0 / 100
15 ms23940 KiB
#include <bits/stdc++.h> using namespace std; #include "traffic.h" long long arr[1000005],tot; vector<int> adj[1000005]; int n; long long sz[1000005]; long long dfssize(int x, int p){ sz[x]=arr[x]; for(int i:adj[x]){ if(i==p) continue; sz[x]+=dfssize(i,x); } return sz[x]; } int cent(int x, int p){ for(int i:adj[x]){ if(i==p) continue; if(sz[i]*2ll>tot) return cent(i,x); } return x; } int LocateCentre(int N,int P[],int S[],int D[]) { n=N; for(int i=0; i<n; i++) arr[i]=P[i],tot+=arr[i]; for(int i=0; i<n-1; i++){ adj[S[i]].push_back(D[i]); adj[D[i]].push_back(S[i]); } dfssize(1,-1); int rt=cent(1,-1); dfssize(rt,-1); for(int i:adj[rt]){ if(sz[i]*2==tot) return i; } return rt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...