Submission #1130332

#TimeUsernameProblemLanguageResultExecution timeMemory
1130332liangjeremyMobile (BOI12_mobile)C++20
25 / 100
1098 ms31560 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double lb;

int n; lb l;
vector<pair<lb,lb>>a;

bool check(lb radius){
    lb start=0;
    for(int i=0; i<n; i++){
        lb left=a[i].first-sqrt(radius*radius-a[i].second*a[i].second);
        lb 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;
    }
    lb left=1; lb right=1.5*(1e9); lb prec=1e-3;
    while(right-left>prec){
        lb mid=(left+right)/2;
        if(check(mid))right=mid;
        else left=mid;
    }
    cout<<fixed<<setprecision(3)<<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...