Submission #1299006

#TimeUsernameProblemLanguageResultExecution timeMemory
1299006ghassanhasanMobile (BOI12_mobile)C++20
50 / 100
1096 ms8768 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

void doing() {
    int n, L;
    cin >> n >> L;
    vector<pair<int, int>> v;
    for (int i = 0; i < n; i++) {
        int a, b;
        cin >> a >> b;
        v.emplace_back(a, b);
    }
    auto cal = [&](double x, double y, double r)-> pair<double, double> {
        auto cur = sqrtl(r * r - y * y);
        return {x - cur, x + cur};
    };
    auto check = [&](double x) {
        double lx = 0;
        for (int i = 0; i < v.size(); i++) {
            if (v[i].second > x)continue;
            auto [l, r] = cal(v[i].first, v[i].second, x);
            if (l <= lx)lx = max(lx, r);
        }
        return lx >= L;
    };
    double l = 0, r = 1e11;
    while (r - l > 1e-4) {
        double mid = l + (r - l) / 2;
        if (check(mid)) r = mid;
        else l = mid;
    }
    cout << fixed << setprecision(6) << r << endl;
}

signed main() {
    ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#ifdef LOCAL
    freopen("IN.txt", "r", stdin);
#else
#endif
    int tc = 1;
    // cin >> tc;
    while (tc--) {
        doing();
    }
    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...