제출 #556799

#제출 시각아이디문제언어결과실행 시간메모리
556799blue도시들 (IOI15_towns)C++17
0 / 100
17 ms356 KiB
#include "towns.h" #include <vector> #include <cmath> #include <set> #include <iostream> #include <cassert> using namespace std; namespace { using vi = vector<int>; } int hubDistance(int N, int sub) { vi dist0(N); dist0[0] = 0; for(int i = 1; i < N; i++) dist0[i] = getDistance(0, i); int S = 0; for(int i = 1; i < N; i++) if(dist0[i] > dist0[S]) S = i; int ST = 0; //diameter // cerr << "done\n"; vi distS(N); distS[S] = 0; distS[0] = dist0[S]; int T = 0; ST = distS[0]; for(int i = 1; i < N; i++) { if(i != S) { distS[i] = getDistance(S, i); if(distS[i] > ST) { ST = distS[i]; T = i; } } } // cerr << "S = " << S << "\n"; vi S0_dist(N); for(int i = 0; i < N; i++) S0_dist[i] = (distS[i] + dist0[i] - distS[0])/2; vi xcoord(N); for(int i = 0; i < N; i++) xcoord[i] = distS[i] - S0_dist[i]; int res = 5'000'000; int dist0_ST = (dist0[S] + dist0[T] - ST)/2; int ST_0coord = dist0[S] - dist0_ST; assert(2*ST_0coord >= distS[T]); // assert((dist0[S] + getDistance(0, T) - distS[T]) <= distS[T]) int best_coord = 0; for(int i = 0; i < N; i++) { // if(2 * xcoord[i] >= ST) // res = min(res, xcoord[i]); if(2 * xcoord[i] <= ST) res = min(res, ST - xcoord[i]); } return res; return ST - best_coord; }

컴파일 시 표준 에러 (stderr) 메시지

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