제출 #1162052

#제출 시각아이디문제언어결과실행 시간메모리
1162052jaredMobile (BOI12_mobile)C++20
25 / 100
1096 ms16096 KiB
#include "bits/stdc++.h"
#define int long long
#define double long double
using namespace std;

int n, L;
vector<pair<int, int> > 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;

    double l = 0, r = INT_MAX;
    while (r - l >= 1e-8) {
        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...