Submission #1159052

#TimeUsernameProblemLanguageResultExecution timeMemory
1159052emptypringlescanTraffic (IOI10_traffic)C++20
0 / 100
14 ms24016 KiB
#include <bits/stdc++.h>
using namespace std;
#include "traffic.h"
long long arr[1000005],tot;
vector<int> adj[1000005];
int n;
long long sz[1000005];
long long dfssize(int x, int p){
	sz[x]=arr[x];
	for(int i:adj[x]){
		if(i==p) continue;
		sz[x]+=dfssize(i,x);
	}
	return sz[x];
}
int cent(int x, int p){
	for(int i:adj[x]){
		if(i==p) continue;
		if(sz[i]*2>tot) return cent(i,x);
	}
	return x;
}
int LocateCentre(int N,int P[],int S[],int D[]) {
	n=N;
	for(int i=0; i<n; i++) arr[i]=P[i],tot+=arr[i];
	for(int i=0; i<n-1; i++){
		adj[S[i]].push_back(D[i]);
		adj[D[i]].push_back(S[i]);
	}
	dfssize(1,-1);
	int rt=cent(1,-1);
	return rt;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...