제출 #1168718

#제출 시각아이디문제언어결과실행 시간메모리
1168718julia_08Mobile (BOI12_mobile)C++20
0 / 100
848 ms35828 KiB
#include <bits/stdc++.h> using namespace std; using ld = long double; const int MAXN = 1e6 + 10; ld x[MAXN], y[MAXN]; ld solve(int i, int j){ ld x1 = x[i], y1 = y[i]; ld x2 = x[j], y2 = y[j]; return (x2 * x2 + y2 * y2 - x1 * x1 - y1 * y1) / (2 * (x2 - x1)); } int main(){ cin.tie(0)->sync_with_stdio(0); int n, l; cin >> n >> l; for(int i=1; i<=n; i++){ cin >> x[i] >> y[i]; } stack<int> q; ld last_x = 0; for(int i=1; i<=n; i++){ while(!q.empty() && solve(q.top(), i) < last_x){ last_x = solve(q.top(), i); q.pop(); } q.push(i); } ld ans = 0; int last_i = 0; if(!q.empty()){ last_i = q.top(); q.pop(); } while(!q.empty()){ ld cur_x = solve(q.top(), last_i); ans = max(ans, (x[last_i] - cur_x) * (x[last_i] - cur_x) + y[last_i] * y[last_i]); last_i = q.top(); q.pop(); } ld dist_1 = 1e9, dist_l = 1e9; for(int i=1; i<=n; i++){ dist_1 = min(dist_1, x[i] * x[i] + y[i] * y[i]); dist_l = min(dist_l, (l - x[i]) * (l - x[i]) + y[i] * y[i]); } ans = max({ans, dist_1, dist_l}); cout << fixed << setprecision(6) << sqrt(ans) << "\n"; return 0; }
#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...
#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...