제출 #1339332

#제출 시각아이디문제언어결과실행 시간메모리
1339332axtelnTraffic (IOI10_traffic)C++20
0 / 100
22 ms47172 KiB
#include "traffic.h"
#include <vector>
using namespace std;

vector<long long> sub(1000001),parent(1000001);
vector<vector<int>> graph(1000001);
vector<long long> arr(1000001);

int dfs(int u,int p){
	sub[u] = arr[u];
	parent[u] = p;
	for (int v:graph[u]){
		if (v == p) continue;
		sub[u] += dfs(v,u);
	}return sub[u];
}

int LocateCentre(int N, int pp[], int S[], int D[]) {
	for (int i=0;i<N;i++){
		arr[i]=pp[i];
	}
	
	for (int i=0;i<N-1;i++){
		graph[S[i]].push_back(D[i]);
		graph[D[i]].push_back(S[i]);
	}
	long long mx=0;
	for (int i=0;i<N;i++){
		dfs(i,-1);
		long long mn=4e18;
		for (int u=0;u<N;u++){
			long long c=0;
			for (int v:graph[u]){
				long long comp=0;
				if (parent[u] == v){
					comp = sub[1]-sub[u];
				}else{
					comp = sub[v];
				}c=max(comp,c);
			}
			mn=min(mn,c);
		}mx=max(mx,mn);
	}
	return mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...