結果

問題 No.160 最短経路のうち辞書順最小
コンテスト
ユーザー flippergo
提出日時 2026-10-17 09:02:03
言語 PyPy3
(8.0.0 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 763 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 83 ms
コンパイル使用メモリ 64,568 KB
実行使用メモリ 61,440 KB
最終ジャッジ日時 2026-10-17 09:02:31
合計ジャッジ時間 3,897 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 8 WA * 18
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import heapq
N,M,S,G = map(int,input().split())
F = {i:[] for i in range(N)}
for _ in range(M):
    a,b,c = map(int,input().split())
    F[a].append((b,c))
    F[b].append((a,c))
INFTY = 10**7
dist = [INFTY]*N
visited = [False]*N
Pa = [-1]*N
dist[S] = 0
heap = [(0,S)]
while heap:
    d,u = heapq.heappop(heap)
    if dist[u]<d:continue
    visited[u] = True
    for v,c in F[u]:
        if visited[v]:continue
        if dist[v]>d+c:
            dist[v] = d+c
            Pa[v] = u
            heapq.heappush(heap,(d+c,v))
        elif dist[v]==d+c:
            u1 = Pa[v]
            if u<u1:
                Pa[v] = u
                heapq.heappush(heap,(d+c,v))
x = G
ans = [G]
while x!=S:
    y = Pa[x]
    ans.append(y)
    x = y
ans = ans[::-1]
print(*ans)
0