This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define diff 0.00001
#define p pair<double,double>
using namespace std;
bool Check(double d,vector<p> v,int n,int l) {
double st,dr;
double distance=sqrt(d*d-v[0].second*v[0].second);
st=max((double)0,v[0].first-distance);
dr=min((double)l,v[0].first+distance);
for (int i=1; i<n; i++) {
double x=v[i].first,y=v[i].second;
double distance=sqrt(d*d-y*y);
if (dr>=max((double)0,x-distance)) dr=min((double)l,x+distance);
else return 0;
}
return (abs((double)l-dr)<=diff && st<=diff);
}
int main()
{
int n,l;
cin>>n>>l;
vector< p > v(n);
for (int i=0; i<n; i++)
cin>>v[i].first>>v[i].second;
double st=0,dr=1e9,mij;
while (abs(dr-st)>diff) {
mij=(st+dr)/2;
//cout<<st<<' '<<dr<<' '<<mij<<'\n';
if (Check(mij,v,n,l)) dr=mij;
else st=mij;
}
cout<<fixed<<setprecision(6)<<dr<<'\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... |