結果
問題 | No.1065 電柱 / Pole (Easy) |
ユーザー |
![]() |
提出日時 | 2022-05-21 16:15:12 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 972 ms / 2,000 ms |
コード長 | 833 bytes |
コンパイル時間 | 285 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 146,516 KB |
最終ジャッジ日時 | 2024-09-20 11:53:26 |
合計ジャッジ時間 | 24,876 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 46 |
ソースコード
from heapq import heappush, heappop import math INF = float('inf') N, M = map(int, input().split()) X, Y = map(int, input().split()) p = [list(map(int, input().split())) for _ in range(N)] adj = [[] for _ in range(N)] for i in range(M): P, Q = map(int, input().split()) x1, y1 = p[P-1] x2, y2 = p[Q-1] adj[P-1].append((Q-1, math.sqrt((x1-x2)**2+(y1-y2)**2))) adj[Q-1].append((P-1, math.sqrt((x1-x2)**2+(y1-y2)**2))) def dijkstra(s, n): dist = [INF] * n hq = [(0, s)] dist[s] = 0 seen = [False] * n while hq: v = heappop(hq)[1] seen[v] = True for to, cost in adj[v]: if seen[to] == False and dist[v] + cost < dist[to]: dist[to] = dist[v] + cost heappush(hq, (dist[to], to)) return dist d = dijkstra(X-1, N) print(d[Y-1])