#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |