from collections import deque
import math
def solve_d(x1, y1, x2, y2):
return (x2**2 + y2**2 - x1**2 - y1**2) / (2 * (x2 - x1))
def dist(x, px, py):
return math.sqrt((x - px)**2 + py**2)
n, L = map(int, input().split())
points = [tuple(map(int, input().split())) for _ in range(n)]
hull = deque()
for (x, y) in points:
while len(hull) >= 2:
x1, y1 = hull[-2]
x2, y2 = hull[-1]
cross = solve_d(x1, y1, x2, y2)
cross2 = solve_d(x2, y2, x, y)
if cross >= cross2:
hull.pop()
else:
break
hull.append((x, y))
ans = 0.0
ans = max(ans, min(dist(0, px, py) for (px, py) in hull))
ans = max(ans, min(dist(L, px, py) for (px, py) in hull))
for i in range(len(hull) - 1):
x1, y1 = hull[i]
x2, y2 = hull[i+1]
xc = solve_d(x1, y1, x2, y2)
if 0 <= xc <= L:
d = dist(xc, x1, y1)
ans = max(ans, d)
print(f"{ans:.6f}")
Compilation message (stdout)
Compiling 'mobile.py'...
=======
adding: __main__.pyc (deflated 43%)
=======
# | 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... |