Submission #134731

#TimeUsernameProblemLanguageResultExecution timeMemory
134731nvmdavaTowns (IOI15_towns)C++17
25 / 100
21 ms380 KiB
#include "towns.h" #include <bits/stdc++.h> #define ff first #define ss second using namespace std; int d[2][200], v; // map<int, int> cntr; int hubDistance(int N, int sub) { for(int i = 0; i < N; i++) d[0][i] = getDistance(0, i); for(int i = 0; i < N; i++) if(d[0][i] > d[0][v]) v = i; int D = 0; int T = d[0][v]; for(int i = 0; i < N; i++) D = max(D, d[1][i] = getDistance(v, i)); int r = 1000000000; for(int i = 0; i < N; i++){ int s = (T - d[0][i] + d[1][i]) >> 1; // cntr[s]++; r = min(r, max(s, D - s)); } return r;/* int chk = -1; int l = 0; for(auto& x : cntr){ if(l <= N / 2 && (N - (l += x.ss)) <= N / 2){ if(max(D - x.ff, x.ff) == r){ if(x.ss <= N / 2) return r; chk = x.ff; } } } if(chk == -1) return -r; vector<int> s, t, o; for(int i = 0; i < N; i++) if(T + d[1][i] - d[0][i] == chk << 1) s.push_back(i); o = s; while(s.size() > 1){ for(int i = 1; i < s.size(); i += 2) if(getDistance(s[i], s[i - 1]) != d[0][s[i]] + d[1][s[i - 1]] - T) t.push_back(s[i]); if(s.size() & 1) t.push_back(s.back()); swap(s, t); t.clear(); } if(s.size() == 0) return r; int sz = 0; for(int& x : o) if(getDistance(s[0], x) != d[0][x] + d[1][s[0]] - T) sz++; if(sz > N / 2) return -r; return r;*/ }

Compilation message (stderr)

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:8:28: warning: unused parameter 'sub' [-Wunused-parameter]
 int hubDistance(int N, int 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...