#include <bits/stdc++.h>
using namespace std;
using ld = long double;
using ll = long long;
const int MAXN = 1e6 + 10;
ll x[MAXN], y[MAXN];
int n; ll L;
bool check(ld d){
vector<pair<ld, ld>> segs;
for(int i=1; i<=n; i++){
ld delta = (ld) (d * d - y[i] * y[i]);
if(delta < 1e-9) continue;
ld l = (ld) (x[i] - sqrt(delta)), r = (ld) (x[i] + sqrt(delta));
if(r >= 0) segs.push_back({max(l, (ld) 0), r});
}
if(segs.empty()) return true;
sort(segs.begin(), segs.end());
if(segs[0].first > 0|| segs[(int) segs.size() - 1].second < L) return true;
for(int i=1; i<(int) segs.size(); i++){
if(segs[i].first - segs[i - 1].second > 1e-9){
return true;
}
}
return false;
}
ld bs(){
ld l = 0, r = 1e10;
for(int i=0; i<75; i++){
ld m = (l + r) / 2;
if(check(m)) l = m;
else r = m;
}
return l;
}
int main(){
cin.tie(0)->sync_with_stdio(0);
cin >> n >> L;
for(int i=1; i<=n; i++){
cin >> x[i] >> y[i];
}
cout << fixed << setprecision(6) << bs() << "\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... |