This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "traffic.h"
#include<bits/stdc++.h>
using namespace std;
const int INF=2e9+1;
const int MAXN=1e6+6;
vector<int>g[MAXN];
int sz[MAXN];
int cnt[MAXN];
int all_people=0;
int min_cong=INF;
int arena=-1;
void dfs(int u,int par)
{
sz[u]=cnt[u];
int max_cong=0;
for(auto xd:g[u])
{
if(xd==par)continue;
dfs(xd,u);
max_cong=max(max_cong,sz[xd]);
sz[u]+=sz[xd];
}
max_cong=max(max_cong,all_people-sz[u]);
if(max_cong<min_cong)
{
min_cong=max_cong;
arena=u;
}
}
int LocateCentre(int N, int pp[], int S[], int D[]) {
for(int i=0;i<N;i++)
{
cnt[i]=pp[i];
all_people+=pp[i];
}
for(int i=0;i<N-1;i++)
{
g[S[i]].push_back(D[i]);
g[D[i]].push_back(S[i]);
}
dfs(0,-1);
return arena;
}
# | 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... |