#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 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... |