Submission #1299107

#TimeUsernameProblemLanguageResultExecution timeMemory
1299107ghassanhasanMobile (BOI12_mobile)C++20
100 / 100
410 ms17000 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

void doing() {
    int n, L;
    cin >> n >> L;
    vector<pair<double, double> > v;
    for (int i = 0; i < n; i++) {
        int a, b;
        cin >> a >> b;
        v.emplace_back(a, b);
    }
    double l = 0, r = 1.5e9;
    while (r - l > 1e-3) {
        double mid = l + (r - l) / 2;
        double cur = 0;
        for (int i = 0; i < n; i++) {
            if (mid < v[i].second)continue;
            double d = sqrt(mid * mid - v[i].second * v[i].second);
            auto lx = v[i].first - d, rx = v[i].first + d;
            if (lx <= cur)cur = max(cur, rx);
        }
        if (cur >= L) 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...