Submission #1130751

#TimeUsernameProblemLanguageResultExecution timeMemory
1130751liangjeremyMobile (BOI12_mobile)C++20
100 / 100
472 ms16028 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double lb;
//lb is really slow
// freopen("landin.txt", "r", stdin);
// freopen("landout.txt", "w", stdout);

int n; double l;
vector<pair<ll,ll>>a;

bool check(double radius){
    double start=0;
    for(int i=0; i<n; i++){
        double left=a[i].first-sqrt(radius*radius-a[i].second*a[i].second);
        double right=sqrt(radius*radius-a[i].second*a[i].second)+a[i].first;
        if(left<=start)start=max(start,right);
    }
    if(start>=l)return true;
    return false;
}

 
int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin>>n>>l; a.resize(n);
    for(int i=0; i<n; i++){
        cin>>a[i].first>>a[i].second;
    }
    double left=0; double right=1.5*(1e9); double prec=1e-4;
    while(right-left>prec){
        double mid=(left+right)/2;
        if(check(mid))right=mid;
        else left=mid;
    }
    cout<<fixed<<setprecision(4)<<left<<'\n';
}
#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...