#include "bits/stdc++.h"
using namespace std;
int n, L;
// vector<pair<int, int> > p;
pair<int, int> p[1000000];
// bool ok(double radius) {
// double end = 0;
// for (auto [x, y]: p) {
// // Equation of a circle: (X - x)^2 + (Y - y)^2 = r^2
// // Want to find intersect with Y = 0,
// // (X - x)^2 = r^2 - y^2
// // X = (+-) sqrt(r^2 - y^2) + x
// double delta = sqrt(radius * radius - y * y);
// double l_intercept = -delta + x, r_intercept = delta + x;
// if (l_intercept <= end) end = max(end, r_intercept);
// }
// return end >= L;
// }
signed main() {
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
cin >> n >> L;
// p.resize(n);
// for (auto &i: p)
// cin >> i.first >> i.second;
for (int i = 0; i < n; i++)
cin >> p[i].first >> p[i].second;
double l = 0, r = 1.5e9;
while (r - l > 1e-3) {
double mid = l + (r - l) / 2;
double end = 0;
// for (auto [x, y]: p) {
for (int i = 0; i < n; i++) {
auto x = p[i].first, y = p[i].second;
// Equation of a circle: (X - x)^2 + (Y - y)^2 = r^2
// Want to find intersect with Y = 0,
// (X - x)^2 = r^2 - y^2
// X = (+-) sqrt(r^2 - y^2) + x
double delta = sqrt(mid * mid - y * y);
double l_intercept = -delta + x, r_intercept = delta + x;
if (l_intercept <= end) end = max(end, r_intercept);
}
if (end >= L) r = mid;
else l = mid;
}
cout << fixed << setprecision(6) << l << endl;
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... |