#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
double L;
cin >> N >> L;
vector<double> x(N), y(N);
for (int i = 0; i < N; i++) {
cin >> x[i] >> y[i];
}
double lo = 0, hi = 0;
// hi bound: farthest possible distance to the farthest station
for (int i = 0; i < N; i++) {
hi = max(hi, hypot(max(x[i], L) - min(x[i], 0.0), y[i]));
}
for (int it = 0; it < 70; it++) { // enough for double precision
double mid = (lo + hi) / 2.0;
double mxlo = 0.0, mnhi = L;
bool ok = true;
for (int i = 0; i < N; i++) {
if (fabs(y[i]) > mid + EPS) { ok = false; break; }
double dx = sqrt(max(0.0, mid * mid - y[i] * y[i]));
mxlo = max(mxlo, x[i] - dx);
mnhi = min(mnhi, x[i] + dx);
}
if (ok && mnhi + EPS >= mxlo && mnhi >= 0 - EPS && mxlo <= L + EPS) {
hi = mid;
} else {
lo = mid;
}
}
cout << fixed << setprecision(6) << hi << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |