Submission #104416

#TimeUsernameProblemLanguageResultExecution timeMemory
104416figter001Towns (IOI15_towns)C++17
0 / 100
27 ms512 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; int cur = query(u,i); if(cur > mx){ mx = cur; v = i; } } return v; } int hubDistance(int N, int sub){ n = N; int a = far(0); int b = far(a); far(b); int len = query(a,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 = disa + disb - len; cur/=2; ans = min(ans,max(disa,disb) - 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...