Submission #1212329

#TimeUsernameProblemLanguageResultExecution timeMemory
1212329adriines06Traffic (IOI10_traffic)C++20
100 / 100
716 ms157044 KiB
#include "traffic.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>>adj; vector<int>p,maxi,st; int t=0; void dfs(int u,int parent){ st[u]+=p[u]; for(int v: adj[u]){ if(v!=parent){ dfs(v,u); st[u]+=st[v]; maxi[u]=max(maxi[u],st[v]); } } maxi[u]=max(maxi[u],t-st[u]); } int LocateCentre(int N, int pp[], int S[], int D[]) { adj.resize(N); for(int i=0;i<N-1;i++){ int a=S[i]; int b= D[i]; adj[a].push_back(b); adj[b].push_back(a); } p.resize(N); maxi.assign(N,0); st.assign(N,0); for(int i=0;i<N;i++){ p[i]=pp[i]; t+=p[i]; } dfs(0,-1); int mini=2e9+5,ans; for(int i=0;i<N;i++){ if(mini>maxi[i]){ mini=maxi[i]; ans=i; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...