Submission #793933

#TimeUsernameProblemLanguageResultExecution timeMemory
793933PixelCatTowns (IOI15_towns)C++14
25 / 100
16 ms1108 KiB
#ifdef NYAOWO #include "grader.cpp" #endif #include "towns.h" #include <bits/stdc++.h> #define For(i, a, b) for(int i = a; i <= b; i++) #define Forr(i, a, b) for(int i = a; i >= b; i--) #define F first #define S second #define all(x) x.begin(), x.end() #define sz(x) ((int)x.size()) #define eb emplace_back #define int LL using namespace std; using LL = long long; using pii = pair<int, int>; map<pii, int> mem; int dist(int a, int b) { if(a > b) swap(a, b); pii p(a, b); if(mem.count(p)) return mem[p]; mem[p] = getDistance((int32_t)a, (int32_t)b); return mem[p]; } int32_t hubDistance(int32_t N, int32_t sub) { // remember to init! mem.clear(); int dia = 0; int p1 = 0; For(i, 1, N - 1) { int d = dist(i, 0); if(d > dia) { dia = d; p1 = i; } } dia = 0; int p2 = p1; For(i, 0, N - 1) { int d = dist(p1, i); if(d > dia) { dia = d; p2 = i; } } map<int, int> cnt; For(i, 0, N - 1) if(i != p1 && i != p2) { int d1 = dist(p1, i); int d2 = dist(p2, i); cnt[(dia + d1 - d2) / 2]++; } int mn = dia; for(auto &i:cnt) { mn = min(mn, max(i.F, dia - i.F)); } return (int32_t)mn; }

Compilation message (stderr)

towns.cpp: In function 'int32_t hubDistance(int32_t, int32_t)':
towns.cpp:29:40: warning: unused parameter 'sub' [-Wunused-parameter]
   29 | int32_t hubDistance(int32_t N, int32_t sub) {
      |                                ~~~~~~~~^~~
#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...