Submission #69874708
Source Code Expand
from math import lcm, sqrt
def dist(x1, y1, x2, y2):
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))
e = 10**-9
def calc_pos(Sx, Sy, Gx, Gy, t, dx, dy, p):
if p >= t:
return Gx, Gy
return Sx + p * dx, Sy + p * dy
def solve(TSx, TSy, TGx, TGy, ASx, ASy, AGx, AGy):
Tt = dist(TSx, TSy, TGx, TGy)
At = dist(ASx, ASy, AGx, AGy)
Tdx, Tdy = (TGx - TSx), (TGy - TSy)
Adx, Ady = (AGx - ASx), (AGy - ASy)
z = Tdx * Ady - Tdy * Adx
f = Tdx * Adx
g = Tdy * Ady
Tdx /= Tt
Tdy /= Tt
Adx /= At
Ady /= At
if z == 0 and f >= 0 and g >= 0:
t = min(Tt, At)
TSx, TSy = TSx + t * Tdx, TSy + t * Tdy
ASx, ASy = ASx + t * Adx, ASy + t * Ady
Tt = dist(TSx, TSy, TGx, TGy)
At = dist(ASx, ASy, AGx, AGy)
Tdx, Tdy = (TGx - TSx), (TGy - TSy)
Adx, Ady = (AGx - ASx), (AGy - ASy)
if Tt > e:
Tdx /= Tt
Tdy /= Tt
if At > e:
Adx /= At
Ady /= At
def calc(p):
Tx, Ty = calc_pos(TSx, TSy, TGx, TGy, Tt, Tdx, Tdy, p)
Ax, Ay = calc_pos(ASx, ASy, AGx, AGy, At, Adx, Ady, p)
return dist(Tx, Ty, Ax, Ay)
l = 0
r = max(Tt, At)
while r - l > e:
d = (r - l) / 3
ln = l + d
rn = ln + d
lv = calc(ln)
rv = calc(rn)
if lv <= rv:
r = rn
if rv <= lv:
l = ln
return calc(l)
def main():
T = int(input())
for t in range(T):
TSx, TSy, TGx, TGy = map(int, input().split())
ASx, ASy, AGx, AGy = map(int, input().split())
ans = solve(TSx, TSy, TGx, TGy, ASx, ASy, AGx, AGy)
print(ans)
main()
Submission Info
Submission Time |
|
Task |
E - Closest Moment |
User |
mo12412 |
Language |
Python (PyPy 3.10-v7.3.12) |
Score |
0 |
Code Size |
1789 Byte |
Status |
WA |
Exec Time |
1220 ms |
Memory |
90624 KiB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 450 |
Status |
|
|
Set Name |
Test Cases |
Sample |
00_sample_00.txt |
All |
00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 02_large_05.txt, 02_large_06.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_00.txt |
AC |
56 ms |
76584 KiB |
01_small_00.txt |
WA |
1041 ms |
88784 KiB |
01_small_01.txt |
WA |
869 ms |
86796 KiB |
01_small_02.txt |
WA |
992 ms |
86888 KiB |
02_large_00.txt |
WA |
1216 ms |
89168 KiB |
02_large_01.txt |
WA |
1210 ms |
90624 KiB |
02_large_02.txt |
WA |
1114 ms |
87692 KiB |
02_large_03.txt |
WA |
1109 ms |
89176 KiB |
02_large_04.txt |
WA |
1220 ms |
88236 KiB |
02_large_05.txt |
WA |
1139 ms |
88320 KiB |
02_large_06.txt |
WA |
218 ms |
87496 KiB |