제출 #1109210

#제출 시각아이디문제언어결과실행 시간메모리
1109210GourougourouUntitled (POI11_wyk)C++17
0 / 100
30065 ms3792 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<double,double> pll; typedef vector<ll> vll; typedef vector<pll> vpll; #define x first #define y second const double EPS = 1e-18; double dist(pll a, pll b) { return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)+(a.y-b.y); } pair<pll,ll> maxDist(vpll v) { ll ans = 0; pll a = v[0]; for (pll i : v) { for (pll j : v) { ll res = dist(i,j); if (res > ans) { ans = res; a = {(i.x+j.x)/2,(i.y+j.y)/2}; } } } return {a,ans}; } vpll ok(int n, int m, vpll v, double k) { vpll ans; vpll cur; pll prev = {-1,-1}; for (int i = 0; i<n; ++i) { cur.push_back(v[i]); auto p = maxDist(cur); if (p.y > 4*k) { ans.push_back(prev); cur = {prev = v[i]}; } else prev = p.x; } if (!cur.empty()) ans.push_back(prev); return ans.size() <= m ? ans : vpll(); } int main() { int n, m; cin >> n >> m; vpll v(n); for (pll &p : v) cin >> p.x >> p.y; double lo = 0, hi = 1e18; while (hi-lo > EPS) { double mid = (hi+lo)/2; if (ok(n,m,v,mid).size()) hi = mid; else lo = mid; } vpll ans = ok(n,m,v,hi); cout << fixed << setprecision(14); cout << sqrt(hi) << '\n'; cout << ans.size() << '\n'; for (pll p : ans) cout << p.x << ' ' << p.y << '\n'; }

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

wyk.cpp: In function 'vpll ok(int, int, vpll, double)':
wyk.cpp:45:23: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   45 |     return ans.size() <= m ? ans : vpll();
      |            ~~~~~~~~~~~^~~~
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...