from collections import deque
import math
def solve_d(x1, y1, x2, y2):
# x coordinate where distances to (x1,y1) and (x2,y2) are equal
return (x2**2 + y2**2 - x1**2 - y1**2) / (2 * (x2 - x1))
n, l = map(int, input().split())
points = []
for _ in range(n):
x, y = map(int, input().split())
points.append((x, y))
points.sort()
ans = 0.0
dq = deque()
dq.append(points[0])
# check at x=0
ans = max(ans, min(math.sqrt((0 - px)**2 + py**2) for px, py in points))
for i in range(1, n):
if dq[-1][0] == points[i][0]:
continue
# compute intersection
x_cross = solve_d(dq[-1][0], dq[-1][1], points[i][0], points[i][1])
if 0 <= x_cross <= l:
d = math.sqrt((x_cross - dq[-1][0])**2 + dq[-1][1]**2)
ans = max(ans, d)
dq.pop()
dq.append(points[i])
# check at x=l
ans = max(ans, min(math.sqrt((l - px)**2 + py**2) for px, py in points))
print(f"{ans:.6f}")
Compilation message (stdout)
Compiling 'mobile.py'...
=======
adding: __main__.pyc (deflated 42%)
=======
# | 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... |