제출 #1291720

#제출 시각아이디문제언어결과실행 시간메모리
1291720ortsac도시들 (IOI15_towns)C++20
25 / 100
10 ms1856 KiB
#include "towns.h" #include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<long long, long long> #define fr first #define se second const int MAXN = 120; const int INF = 0x3f3f3f3f3f3f3f3f; int dist[MAXN][MAXN]; int query(int a, int b) { if (a == b) return 0; if (a > b) swap(a, b); if (dist[a][b]) return dist[a][b]; return (dist[a][b] = getDistance(a, b)); } int32_t hubDistance(int32_t n, int32_t sub) { memset(dist, 0, sizeof dist); // achar diametro pii mx = {0, 0}; for (int i = 1; i < n; i++) mx = max(mx, {query(1, i), i}); int p1 = mx.se; mx = {0, 0}; for (int i = 0; i < n; i++) mx = max(mx, {query(p1, i), i}); int p2 = mx.se, diam = mx.fr; // 2n - 1 queries int mi = INF; for (int i = 0; i < n; i++) { int apc = query(i, p1); int bpc = query(i, p2); int amc = (apc - bpc); int a = (amc + diam)/2, b = (diam - a); mi = min(mi, max(a, b)); } return mi; }
#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...