# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
115048 | luciocf | Mobile (BOI12_mobile) | C++14 | 1077 ms | 672 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef double dd;
typedef pair<dd, dd> pt;
const int maxn = 5e3+10;
const double inf = 2e18+10;
const double eps = 1e-9;
int n;
dd L;
pt p[maxn];
dd dist(pt a, pt b)
{
dd d1 = a.x-b.x;
dd d2 = a.y-b.y;
return sqrt(d1*d1 + d2*d2);
}
bool ok(dd X, int ind)
{
dd ans = inf;
for (int i = 1; i <= n; i++)
ans = min(ans, dist({X, 0.00}, p[i]));
if (fabs(ans-dist({X, 0.00}, p[ind])) < eps) return true;
return false;
}
dd busca_right(int ind)
{
dd ini = p[ind].x, fim = L, ans = -1.00;
for (int i = 1; i <= 64; i++)
{
dd mid = (ini+fim)/2.00;
if (ok(mid, ind)) ans = mid, ini = mid;
else fim = mid;
}
return ans;
}
dd busca_left(int ind)
{
dd ini = 0.00, fim = p[ind].x, ans = -1.00;
for (int i = 1; i <= 64; i++)
{
dd mid = (ini+fim)/2.00;
if (ok(mid, ind)) ans = mid, fim = mid;
else ini = mid;
}
return ans;
}
int main(void)
{
scanf("%d %lf", &n, &L);
for (int i = 1; i <= n; i++)
scanf("%lf %lf", &p[i].x, &p[i].y);
dd ans = 0.00;
for (int i = 1; i <= n; i++)
{
dd posR = busca_right(i);
dd posL = busca_left(i);
if (posR != -1)
ans = max(ans, dist({posR, 0.00}, p[i]));
if (posL != -1)
ans = max(ans, dist({posL, 0.00}, p[i]));
}
printf("%.6lf\n", ans);
}
Compilation message (stderr)
# | 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... |