Submission #1224834

#TimeUsernameProblemLanguageResultExecution timeMemory
1224834boclobanchatTraffic (IOI10_traffic)C++20
100 / 100
426 ms152992 KiB
#include"traffic.h" #include<bits/stdc++.h> using namespace std; const int MAXN=1e6+5; int sub[MAXN],root[MAXN]; vector<int> ds[MAXN]; void dfs(int i,int pre) { root[i]=pre; for(auto v:ds[i]) if(v!=pre) { dfs(v,i); sub[i]+=sub[v]; } } int LocateCentre(int N,int pp[],int S[],int D[]) { for(int i=0;i<N;i++) sub[i]=pp[i]; for(int i=0;i<N-1;i++) ds[S[i]].push_back(D[i]),ds[D[i]].push_back(S[i]); dfs(0,0); int ans=2e9,pos=0; for(int i=0;i<N;i++) { int mx=0; for(auto v:ds[i]) if(v==root[i]) mx=max(mx,sub[0]-sub[i]); else mx=max(mx,sub[v]); if(ans>=mx) ans=mx,pos=i; } return pos; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...