Submission #1162078

#TimeUsernameProblemLanguageResultExecution timeMemory
1162078jaredMobile (BOI12_mobile)C++20
95 / 100
274 ms16096 KiB
#include "bits/stdc++.h"
// #define int long long
// #define double long double
using namespace std;

int n, L;
vector<pair<long long, long long> > p;

bool ok(double radius) {
    double end = 0;
    for (auto [x, y]: p) {
        // Equation of a circle: (X - x)^2 + (Y - y)^2 = r^2
        // Want to find intersect with Y = 0,
        // (X - x)^2 = r^2 - y^2
        //         X = (+-) sqrt(r^2 - y^2) + x
        double delta = sqrt(radius * radius - y * y);
        double l_intercept = -delta + x, r_intercept = delta + x;
        if (l_intercept <= end) end = max(end, r_intercept);
    }
    return end >= L;
}

signed main() {
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);

    cin >> n >> L;
    p.resize(n);
    for (auto &i: p)
        cin >> i.first >> i.second;
    // for (int i = 0; i < n; i++)
    //     cin >> p[i].first >> p[i].second;

    double l = 0, r = INT_MAX;
    while (r - l > 1e-3) {
        double mid = l + (r - l) / 2;

        if (ok(mid)) r = mid;
        else l = mid;
    }
    cout << fixed << setprecision(6) << l << endl;
    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...