結果

問題 No.2179 Planet Traveler
ユーザー 👑 p-adicp-adic
提出日時 2023-05-30 08:16:05
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 1,444 ms / 3,000 ms
コード長 527 bytes
コンパイル時間 496 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 36,736 KB
最終ジャッジ日時 2024-12-28 11:25:47
合計ジャッジ時間 19,631 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

import math
I,R=input,range
def J():
	return map(int,I().split())
N=int(I())
P=[0]*N
for i in R(N):
	X,Y,T=J()
	P[i]=[X*X+Y*Y,X,Y,T]
D=[[0]*N for i in R(N)]
for i in R(N):
	p=P[i]
	for j in R(N):
		q=P[j]
		if p[3]==q[3]:u=(q[1]-p[1])**2+(q[2]-p[2])**2
		else:
			s=4*p[0]*q[0]
			r=int(math.sqrt(s))+1
			while s<r*r:r-=1
			u=p[0]-r+q[0]
		D[i][j]=u
M=3200000001
W=[M]*N
W[0]=0
Q={i for i in R(N)}
while len(Q):
	e,w=N,M
	for q in Q:
		if w>W[q]:e,w=q,W[q]
	Q.remove(e)
	for q in Q:W[q]=min(W[q],max(w,D[e][q]))
print(W[N-1])
0