// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
vector<pair<ld, ld>> points;
ld L;
ll n;
bool ok(ld R) {
ld cur = 0.0;
for (auto [x, y] : points) {
if (R < fabsl(y)) continue;
ld dx = sqrt(R*R - y*y);
ld l = max((ld)0.0, x - dx);
ld r = min(L, x + dx);
if (l > cur) return false;
cur = max(cur, r);
if (cur >= L) return true;
}
return cur >= L;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> L;
points.resize(n);
for (ll i = 0; i < n; i++) {
cin >> points[i].first >> points[i].second;
}
ld lo = 0.0, hi = 2e9;
for (int it = 0; it < 140; it++) {
ld mid = (lo + hi) / 2;
if (ok(mid)) hi = mid;
else lo = mid;
}
cout << fixed << setprecision(6) << hi << "\n";
}
| # | 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... |