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-4):
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()
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
3164 KB |
10 numbers |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
3164 KB |
2 numbers |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1563 ms |
3524 KB |
345th numbers differ - expected: '215.0530000000', found: '215.0472621918', error = '0.0057378082' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2048 ms |
3824 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2025 ms |
7104 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2064 ms |
13504 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2037 ms |
23656 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2054 ms |
27036 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2052 ms |
35180 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2055 ms |
43236 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |