結果
| 問題 | No.2179 Planet Traveler | 
| コンテスト | |
| ユーザー | 👑 | 
| 提出日時 | 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 | 
ソースコード
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])
            
            
            
        