제출 #1271706

#제출 시각아이디문제언어결과실행 시간메모리
1271706vtnooTowns (IOI15_towns)C++20
25 / 100
10 ms464 KiB
#include "towns.h"
#include <bits/stdc++.h>
using namespace std;

int hubDistance(int N, int sub) {
	vector<int> q(N);
	for(int i=1;i<N;i++){
		q[i]=getDistance(0,i);
	}
	int a=max_element(q.begin(), q.end())-q.begin();
	vector<int> w(N);
	for(int i=0;i<N;i++){
		if(i==a)continue;
		w[i]=getDistance(a,i);
	}
	int b=max_element(w.begin(), w.end())-w.begin();
	vector<int> e(N);
	// Tengo el diametro, ahora necesito computar para cada nodo su distancia a uno de ellos
	for(int i=0;i<N;i++){
		if(i==b)continue;
		e[i]=getDistance(b,i);
	}
	vector<int> r(N, 1e9);
	for(int i=0;i<N;i++){
		if(i==a||i==b)continue;
		int d1=((e[a]+e[i])-w[i])/2;
		int d2=((e[a]+w[i])-e[i])/2;
		r[i]=max(d1, d2);
	}
	return *min_element(r.begin(), r.end());
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...