제출 #104419

#제출 시각아이디문제언어결과실행 시간메모리
104419figter001도시들 (IOI15_towns)C++17
25 / 100
26 ms956 KiB
#include "towns.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int nax = 120; int n,dis[nax][nax],ans; int query(int a,int b){ if(dis[a][b] != 0) return dis[a][b]; dis[a][b] = dis[b][a] = getDistance(a,b); return dis[a][b]; } int far(int u){ int mx = 0,v = -1; for(int i=0;i<n;i++){ if(i == u) continue; dis[u][i] = getDistance(u,i); if(dis[u][i] > mx){ mx = dis[u][i]; v = i; } } return v; } int hubDistance(int N, int sub){ n = N; int a = far(0); int b = far(a); far(b); ans = 2e9; for(int i=0;i<n;i++){ if(a == i || b == i) continue; // int disa = query(i,a); // int disb = query(i,b); int cur = (dis[a][i] + dis[b][i] - dis[a][b]) / 2; ans = min(ans,max(dis[a][i],dis[b][i]) - cur); } if(sub == 1 || sub == 2) return ans; else assert(0); }
#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...