Submission #551284

#TimeUsernameProblemLanguageResultExecution timeMemory
551284narcissusMobile (BOI12_mobile)C++17
0 / 100
1060 ms27160 KiB
#include <iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>

using namespace std;

int main()
{
    int n, l;
    cin >> n >> l;
    pair<int, int> coords[n];
    for (int i = 0; i < n; i++) {
        cin >> coords[i].first >> coords[i].second;
    }

    double low = 1, high = 2e9;
    while (high - low > 1e-3) {
        double mid = low + (high - low) / 2;
        // cout << mid << ":" << endl;
        double maxv = 0;
        for (int i = 0; i < n; i++) {
            int x = coords[i].first;
            int y = coords[i].second;
            double xdist = sqrt(abs(pow(mid, 2) - pow(y, 2)));
            double a1 = max((double)0, x - xdist);
            double a2 = min((double)l, x + xdist);
            // cout << "a " << a1 << ' ' << a2 << endl;
            if (a1 <= maxv)
                maxv = max(maxv, a2);
        }
        if (maxv >= l) {
            high = mid;
        } else {
            low = mid;
        }
    }
    cout << fixed << setprecision(4) << high << 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...