This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
import random
import time
random.seed(time.time())
def solve():
n=int(input())
a=[list(map(int,input().split())) for _ in range(n)]
ans = [0]*(n)
def check(i: int, j: int, r1: float, r2: float):
d = (a[i][0]-a[j][0])**2 + (r1 - r2)**2
if d < (r1+r2)**2:
return 0
return 1
def find(i: int,x: float):
ok = 1
for j in range(i):
ok &= check(j, i, ans[j], x)
return ok
for i in range(n):
l, h=0.0,a[i][1]
while h-l > float(1e-5):
mid = (l + h )/2
if find(i, mid) == 1:
ans[i]=mid
l=mid
else:
h=mid
print(*ans, sep="\n")
if __name__ == '__main__':
t = 1
# print(t)
while t > 0:
t -= 1
solve()
# | 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... |