#include<bits/stdc++.h>
using namespace std;
int N, L;
double r = 0, l = 1e9*sqrt(5);
vector<pair<int, int>> coor;
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> N >> L;
for(int i = 0; i < N; i++){
int X, Y;
cin >> X >> Y;
coor.push_back({X, Y});
l = min(l, (double)abs(Y));
r = max(r, sqrt((double)Y*Y + (double)max(X, L-X)*max(X, L-X)));
}
while(r-l > 1e-3){
double mid = (r+l)/2;
int U = -1, A = 0;
double P = 0;
//cout << l << " " << r << "\n";
while(P < L){
//cout << U << " " << P << " " << A << "\n";
U = -1;
for(int i = A; i < N; i++){
if(coor[i].first < P-mid) continue;
if(coor[i].first > P+mid) break;
if((double)(coor[i].first-P)*(coor[i].first-P) + (double)coor[i].second*coor[i].second < mid*mid) U = i;
//cout << "iterando: " << i << " " << ((double)(coor[i].first-P)*(coor[i].first-P) + (double)coor[i].second*coor[i].second) << " " << mid*mid << "\n";
}
if(U==-1){
break;
}
P = abs(coor[U].first + sqrt(mid*mid - (double)coor[U].second*coor[U].second)) + 1e-3;
A = U+1;
}
if(U == -1){
l = mid;
}
else{
r = mid;
}
}
cout << (r+l)/2;
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... |