#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
double L;
pair<double,double> a[1000005];
bool check(double mid){
double l=0;
for(int i=0; i<n; i++){
double x=mid*mid-a[i].second*a[i].second;
if((l-a[i].first)*(l-a[i].first)+a[i].second*a[i].second>mid*mid){
continue;
}
double dx=sqrt(x);
if(a[i].first-dx<=l){
l=a[i].first+dx;
}
}
return l>=L;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
cin>>n>>L;
for(int i=0; i<n; i++){
cin>>a[i].first>>a[i].second;
}
double lo=0, hi=1.5*1e9;
while(lo+1e-3<hi){
double mid=(lo+hi)/2;
if(check(mid)) hi=mid;
else lo=mid;
}
cout<<fixed<<setprecision(18)<<lo<<endl;
}
# | 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... |