#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[v]);
else mx=max(mx,sub[v]);
if(ans>=mx) ans=mx,pos=i;
}
return pos;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |