結果
問題 |
No.168 ものさし
|
ユーザー |
![]() |
提出日時 | 2015-03-21 02:06:46 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 899 bytes |
コンパイル時間 | 79 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 99,712 KB |
最終ジャッジ日時 | 2024-06-28 23:51:28 |
合計ジャッジ時間 | 7,815 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 8 TLE * 1 -- * 10 |
ソースコード
#!/usr/bin/env python # -*- coding: utf-8 -*- from decimal import Decimal from heapq import heappop,heappush import math N = int(input()) XYs = [list(map(int,input().split())) for i in range(0,N)] dist = lambda p1,p2: (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 distances = [[Decimal(dist(XYs[i], XYs[j])).sqrt() for i in range(N)] for j in range(N)] max_distances = [10**10 for i in range(N)] ans = 10**10 queue = [] heappush(queue,(0,0)) while queue != []: distance,index = heappop(queue) if ans <= distance: continue if index == N-1: ans = min(ans,distance) continue for j in range(N): if index == j: continue if distances[index][j] < max_distances[j] and distance < max_distances[j]: max_distances[j] = max(distance,distances[index][j]) heappush(queue,(max_distances[j],j)) print(10*math.ceil(ans/10))