#include <bits/stdc++.h>
#define db double
#define pb push_back
#define all(x) begin(x), end(x)
#define sz(x) ((int)(x).size())
using namespace std;
int n;
db L;
vector<pair<db, db>> cord;
bool ok(db x) {
vector<pair<db, db>> seg;
for (auto &[xi, yi] : cord) {
if (yi > x) continue;
db dx = sqrt(x * x - yi * yi);
db l0 = max(0.0, xi - dx);
db r0 = min(L, xi + dx);
if (l0 > r0) continue;
seg.pb({l0, r0});
}
if (seg.empty()) return false;
sort(all(seg));
db last = 0;
for (auto &[l, r] : seg) {
if (l > last + 1e-7) return false;
last = max(last, r);
if (last >= L - 1e-7) return true;
}
return last >= L - 1e-7;
}
void solve() {
cin >> n >> L;
cord.clear();
for (int i = 0; i < n; ++i) {
db x, y;
cin >> x >> y;
if (cord.empty() || cord.back().first != x) {
cord.pb({x, y});
}
}
n = sz(cord);
db l = 0, r = 2e9;
for (int it = 0; it < 100; ++it) {
db mid = (l + r) / 2;
if (ok(mid))
r = mid;
else
l = mid;
}
cout << fixed << setprecision(6) << r << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
}
# | 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... |