Submission #1258981

#TimeUsernameProblemLanguageResultExecution timeMemory
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}")

Compilation message (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...