Submission #1165854

#TimeUsernameProblemLanguageResultExecution timeMemory
1165854hikari1234Mobile (BOI12_mobile)C++20
0 / 100
633 ms16096 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
double L;
pair<double,double> a[1000005];
bool check(double mid){
    double l=0;
    for(int i=0; i<n; i++){
        double x=mid*mid-a[i].second*a[i].second;
        if(x<0){
            continue;
        }
        double dx=sqrt(x);
        if(a[i].first-dx<=l){
            l=a[i].first+dx;
        }
    }
    return l>=L;
}
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>n>>L;
    for(int i=0; i<n; i++){
        cin>>a[i].first>>a[i].second;
    }
    double lo=0, hi=2e10;
    for(int i=0; i<100; i++){
        double mid=(lo+hi)/2;
        if(check(mid)){
            hi=mid;
        }
        else{
            lo=mid;
        }
    }
    cout<<fixed<<setprecision(18)<<lo<<endl;
}
#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...