#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll MAXN=1e6+5;
/*
binary search on the answer
for a given radius r we can take intervals on the x-axis that have dist less than r.
just need to make sure the union covers 0 to l
*/
ll n;
double l, x[MAXN], y[MAXN];
bool works(double r)
{
double c=0;
for (int i=0; i<n; i++)
{
double d=sqrt(r*r-y[i]*y[i]);
double a=x[i]-d, b=x[i]+d;
if (a<=c)
{
c=max(c, b);
}
}
return c>=l;
}
int main()
{
cin >> n >> l;
for (int i=0; i<n; i++)
{
cin >> x[i] >> y[i];
}
double L=1, R=1e10, mid;
while (L<R-0.001)
{
mid=(L+R)/2;
if (works(mid))
{
R=mid;
}
else
{
L=mid;
}
}
cout << fixed << setprecision(3) << L << "\n";
}
| # | 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... |