제출 #1258981

#제출 시각아이디문제언어결과실행 시간메모리
1258981aditya_k47Mobile (BOI12_mobile)Pypy 3
0 / 100
1101 ms171920 KiB
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}")

컴파일 시 표준 출력 (stdout) 메시지

Compiling 'mobile.py'...

=======
  adding: __main__.pyc (deflated 43%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...