#include <bits/stdc++.h>
#define db double
#define all(x) begin(x), end(x)
#define REP(i, n) for (int i = 0, _n = (n); i < _n; ++i)
using namespace std;
int n;
db l;
vector<pair<db, db>> cord;
bool ok(db x) {
vector<pair<db, db>> cutted;
for (auto &[x0, y0] : cord) {
if (y0 > x) continue;
db t = sqrt(x * x - y0 * y0);
db l0 = max(0.0, x0 - t);
db r0 = min(l, x0 + t);
if (l0 > r0) continue;
cutted.emplace_back(l0, r0);
}
if (cutted.empty()) return false;
sort(all(cutted));
db covered = 0;
for (auto &[l0, r0] : cutted) {
if (l0 > covered + 1e-9) return false;
covered = max(covered, r0);
if (covered >= l - 1e-9) return true;
}
return false;
}
void solve() {
cin >> n >> l;
vector<pair<int, int>> all;
REP(i, n) {
int x, y;
cin >> x >> y;
all.emplace_back(x, y);
}
sort(all.begin(), all.end());
for (auto &[x, y] : all)
if (cord.empty() || cord.back().first != x)
cord.emplace_back(x, y);
n = cord.size();
db lo = 0, hi = 1e9 * sqrt(2);
REP(_, 50) {
db mid = (lo + hi) / 2;
if (ok(mid)) hi = mid;
else lo = mid;
}
cout << fixed << setprecision(6) << hi << '\n';
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
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... |