#include <bits/stdc++.h>
#include "traffic.h"
#define pb push_back
using namespace std;
const int N=1e6+5;
vector<int> a[N];
int zem[N],c[N],pa[N];
int kop=0;
void dfs(int v, int p){
    pa[v]=p;
    kop+=c[v];
    int sum=0;
    for(auto u : a[v]){
        if(u!=p){
            dfs(u,v);
            sum+=zem[u]+c[u];
        }
    }
    zem[v]=sum;
}
int LocateCentre(int n, int pp[], int S[], int D[]) {
    for(int i=0; i<n-1; i++){
        a[S[i]].pb(D[i]);
        a[D[i]].pb(S[i]);
    }
    for(int i=0; i<n; i++){
        c[i]=pp[i];
    }
    dfs(0,0);
    int r=2e9+5;
    for(int v=0; v<n; v++){
        int cur=0;
        for(auto u : a[v]){
            if(u==pa[v]){
                cur=max(cur,kop-zem[v]-c[v]);
            }else{
                cur=max(cur,zem[u]+c[u]);
            }
        }
        r=min(r,cur);
    }
    return r;
}
| # | 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... |