結果
問題 |
No.160 最短経路のうち辞書順最小
|
ユーザー |
![]() |
提出日時 | 2017-10-24 15:33:40 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 788 bytes |
コンパイル時間 | 232 ms |
コンパイル使用メモリ | 82,336 KB |
実行使用メモリ | 80,368 KB |
最終ジャッジ日時 | 2024-11-21 17:37:55 |
合計ジャッジ時間 | 5,332 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 2 |
other | AC * 2 WA * 24 |
ソースコード
from queue import PriorityQueue N,M,S,G = list(map(int, input().split(' '))) T = [] for i in range(N): T.append([-1 for _ in range(N)]) for i in range(M): b,e,t = list(map(int, input().split(' '))) T[b][e] = t T[e][b] = t D = [] for i in range(N): D.append(float('inf')) D[S] = 0 P = [] for i in range(N): P.append(-1) Q = PriorityQueue() for i, d in enumerate(D): Q.put((d, i)) while not Q.empty(): d, u = Q.get() for v, t in enumerate(T[u]): if t != -1: s = D[u] + t if s < D[v]: D[v] = s P[v] = u Q.put((s, v)) R = {} for i, d in enumerate(D): R[d] = i solution = [] for r in sorted(R.keys()): solution.append(str(R[r])) print(' '.join(solution))