Submission #371517

#TimeUsernameProblemLanguageResultExecution timeMemory
371517CodurrMobile (BOI12_mobile)C++14
0 / 100
1093 ms15980 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()

signed main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int n,l;
    cin>>n>>l;
    vector<pair<double,double>> v(n);
    for(int i=0;i<n;i++) cin>>v[i].first>>v[i].second;
    for(int i=1;i<n;i++){
        if(v[i-1].first==v[i].first){
            int x=i-1;
            v.erase(v.begin()+i);
            i=x;
        }
    }
    double l1=0,r=1e9*sqrt(2);
    while (r-l1>1e-3){
        double m=(l1+r)/2;
        bool ans=true;
        double a=r,b=0,cur1,cur2;
        for(int i=0;i<n;i++){
            cur1=v[i].first-sqrt(m*m-v[i].second*v[i].second);
            cur2=v[i].first+sqrt(m*m-v[i].second*v[i].second);
            if(cur1<=b||i==0){
                a=min(a,cur1);
                b=max(b,cur2);
            }
            else {ans=false; break;}
        }
        if(a<=(double)0&&b>=(double)l&&!ans) ans=true;
        if(ans) r=m;
        else l1=m;
    }
    cout<<fixed<<setprecision(6)<<r;
    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...