Submission #60181

#TimeUsernameProblemLanguageResultExecution timeMemory
60181istleminTowns (IOI15_towns)C++14
0 / 100
30 ms1180 KiB
#include "towns.h" #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i = a; i<int(b);++i) #define all(v) v.begin(),v.end() #define sz(v) v.size() #define trav(a,c) for(auto a: c) typedef int ll; typedef vector<ll> vi; typedef pair<ll,ll> pii; ll n; vector<vi> distMem; ll distance(ll a,ll b){ if(distMem[a][b]!=-1) return distMem[a][b]; return distMem[a][b] = distMem[b][a] = getDistance(a,b); } pii getFurthest(ll v){ ll furthest = 0; ll mx = 0; rep(i,0,n){ ll dist = distance(v,i); if(dist>mx){ mx = dist; furthest = i; } } return {furthest,mx}; } int hubDistance(int N, int sub) { n = N; distMem.resize(n,vi(n,-1)); ll diaA = getFurthest(0).first; pii tmp = getFurthest(diaA); ll diaB = tmp.first; ll diameter = tmp.second; map<ll,ll> pointsOnDiameter; rep(i,0,n){ if(i==diaA||i==diaB) continue; ll distA = distance(i,diaA); ll distB = distance(i,diaB); ll distFromDiameter = (distA+distB-diameter)/2; pointsOnDiameter[distA-distFromDiameter]++; } ll minR = 1e18; ll center = 0; trav(x,pointsOnDiameter){ ll currR = max(x.first,diameter-x.first); if(currR<minR){ center = x.first; minR = currR; } } return minR; //if(pointsOnDiameter[center]<=n/2) return }

Compilation message (stderr)

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:58:15: warning: overflow in implicit constant conversion [-Woverflow]
     ll minR = 1e18;
               ^~~~
towns.cpp:59:8: warning: variable 'center' set but not used [-Wunused-but-set-variable]
     ll center = 0;
        ^~~~~~
towns.cpp:37: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...