Submission #862455

#TimeUsernameProblemLanguageResultExecution timeMemory
862455AndreiVerestiucMobile (BOI12_mobile)C++11
0 / 100
939 ms40276 KiB
#include <bits/stdc++.h>
#define diff 0.0000001
#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 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...