Submission #1309749

#TimeUsernameProblemLanguageResultExecution timeMemory
1309749vaishakhvMobile (BOI12_mobile)C++20
0 / 100
961 ms31744 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;

vector<pair<ld, ld>> points;
ld L;
ll n;

bool ok(ld R) {
    ld cur = 0.0;

    for (auto [x, y] : points) {
        if (R < fabsl(y)) continue; 

        ld dx = sqrt(R*R - y*y);
        ld l = max((ld)0.0, x - dx);
        ld r = min(L, x + dx);

        if (l > cur) return false;
        cur = max(cur, r);

        if (cur >= L) return true;
    }

    return cur >= L;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> L;
    points.resize(n);

    for (ll i = 0; i < n; i++) {
        cin >> points[i].first >> points[i].second;
    }

    ld lo = 0.0, hi = 2e9;

    for (int it = 0; it < 140; it++) {
        ld mid = (lo + hi) / 2;
        if (ok(mid)) hi = mid;
        else lo = mid;
    }

    cout << fixed << setprecision(6) << hi << "\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...