제출 #1302268

#제출 시각아이디문제언어결과실행 시간메모리
1302268nicolo_010Towns (IOI15_towns)C++20
25 / 100
10 ms1852 KiB
#include <bits/stdc++.h> #include "towns.h" using namespace std; using ll = long long; using pii = pair<int, int>; const int MOD = 1e9+7; int hubDistance(int n, int s) { int idx=0, mx=0; for (int i=1; i<n; i++) { int dis = getDistance(0, i); if (dis > mx) { mx = dis; idx = i; } } int l = idx; int r=l; mx=0; vector<int> disl(n, 0); for (int i=0; i<n; i++) { int dis = getDistance(i, l); disl[i] = dis; if (dis > mx) { r = i; mx = dis; } } vector<int> disr(n, 0); for (int i=0; i<n; i++) { int dis = getDistance(i, r); disr[i] = dis; } int R = 1e9+1; for (int i=0; i<n; i++) { if (i==l || i==r) continue; int lca = disl[i]+disr[i]-disl[r]; lca /= 2; int dissl = disl[i]-lca; int dissr = disr[i]-lca; R = min(R, max(dissl, dissr)); } return R; }
#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...