Submission #1294387

#TimeUsernameProblemLanguageResultExecution timeMemory
1294387sritthebossMobile (BOI12_mobile)C++20
4 / 100
937 ms63864 KiB
#include "bits/stdc++.h"
#define INF 1e18
using namespace std;

bool test(int n, int l, double r, vector<pair<double, double>> stations) {
    vector<pair<double, double>> intervals;

    for (int i = 0; i < n; i++) {
        if (stations[i].second >= -r && stations[i].second <= r) {
            double x = stations[i].first;
            double y = stations[i].second;
            double lower = x - sqrt(pow(r, 2) - pow(y, 2));
            double upper = x + sqrt(pow(r, 2) - pow(y, 2));
            intervals.push_back({lower, upper});
        }
    }

    pair<double, double> best = intervals[0];

    for (auto interval : intervals) {
        if (interval.first < best.second) {
            best = {min(interval.first, best.first), max(interval.second, best.second)};
        }
    }

    if (best.first <= 0 && best.second >= l) {
        return true;
    }

    return false;

}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, l;
    cin >> n >> l;
    vector<pair<double, double>> stations(n);

    for (int i = 0; i < n; i++) {
        cin >> stations[i].first >> stations[i].second;
    }

    double lo = 0, hi = 1.1e9;

    while (hi - lo > 1e-3) {
        double mid = (lo + hi) / 2;
        if (test(n, l, mid, stations)) {
            hi = mid;
        } else {
            lo = mid;
        }
    }

    cout << lo << endl;


}


#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...