Submission #371520

#TimeUsernameProblemLanguageResultExecution timeMemory
371520CodurrMobile (BOI12_mobile)C++14
0 / 100
1092 ms31664 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=1,r=1e9*sqrt(2);
    while (r-l1>1e-3){
        double m=(l1+r)/2;
        double a,b,cur=0;
        for(int i=0;i<n;i++){
            a=v[i].first-sqrt(m*m-v[i].second*v[i].second);
            b=v[i].first+sqrt(m*m-v[i].second*v[i].second);
            if(a<=cur) cur=max(cur,b);
        }
        if(cur>=(double)l) 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...