結果

問題 No.160 最短経路のうち辞書順最小
ユーザー ckawatak
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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))
0