#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
const ld INF_R = 2e9L;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll N, L;
cin >> N >> L;
vector<ll> x(N), y(N);
for(ll i = 0; i < N; i++){
cin >> x[i] >> y[i];
}
auto covers = [&](ld R){
// intentamos cubrir [0, L] con los intervalos de cada estación
ld reach = 0.0L;
for(ll i = 0; i < N; i++){
// si la estación está demasiado lejos en y, no cubre la carretera
if (fabsl(y[i]) > R) continue;
// distancia horizontal desde x[i]
ld dx = sqrtl(R*R - (ld)y[i]*y[i]);
ld left = x[i] - dx;
ld right = x[i] + dx;
if (left > reach)
return false; // hueco sin cubrir entre reach y left
reach = max(reach, right);
if (reach >= L)
return true; // ya cubrimos todo [0, L]
}
return (reach >= L);
};
// binaria para el menor R que cubra completamente la carretera
ld lo = 0.0L, hi = INF_R;
for(int it = 0; it < 200; it++){
ld mid = (lo + hi) * 0.5L;
if (covers(mid))
hi = mid;
else
lo = mid;
}
cout << fixed << setprecision(10) << hi << "\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... |