Submission #1278335

#TimeUsernameProblemLanguageResultExecution timeMemory
1278335tsetsenbilegMobile (BOI12_mobile)C++20
100 / 100
719 ms31760 KiB
#include <bits/stdc++.h>
#define int long long
#define ld long double
#define tri pair<pair<int, int>, int>
using namespace std;
const int INF=1e9+7, MAXI=1e6+1;
int n, l;

bool check(const vector<ld>& x, const vector<ld>& y, ld r) {
    ld left=0;
    for (int i=0; i<n; i++) {
        if ((left-x[i])*(left-x[i])+y[i]*y[i]>r*r) continue;
        left=max(left, sqrt(r*r-y[i]*y[i])+x[i]);
    }
    return left>=l;
}

void solve() {
    
    cin>>n>>l;
    vector<ld> x(n), y(n);
    for (int i=0; i<n; i++) cin>>x[i]>>y[i];
    ld lo=-1, hi=1e9+1, m;
    for (int i=0; i<100; i++) {
        m=lo+(hi-lo)/2;
        if (check(x, y, m)) hi=m;
        else lo=m;
    }
    cout<<fixed<<setprecision(6)<<hi;
    return;
}

signed main () {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    // int T;
    // cin>>T;
    // while (T--) 
    solve();
    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...