Submission #371512

#TimeUsernameProblemLanguageResultExecution timeMemory
371512CodurrMobile (BOI12_mobile)C++14
0 / 100
1097 ms40368 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=10;
    for(int j=1;j<100;j++){
        double m=(l1+r)/2;
        bool ans=true;
        vector<pair<double,double>> c(n);
        for(int i=0;i<n;i++){
            c[i].first=v[i].first-sqrt(m*m-v[i].second*v[i].second);
            c[i].second=v[i].first+sqrt(m*m-v[i].second*v[i].second);
        }
        if(c[0].first>0) ans=false;
        else if(c[n-1].second<l) ans=false;
        else{
            for(int i=0;i<n-1;i++){
                if(c[i+1].first>c[i].second) {ans=false; break;}
            }
        }
        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...