20251020 baekjoon

This commit is contained in:
songyc macbook 2025-10-20 20:54:26 +09:00
parent 638d55d489
commit 9cd5b1b7f9

View File

@ -0,0 +1,45 @@
import heapq
n, m = map(int, [input(), input()])
graph = [[] for _ in range(n+1)]
for _ in range(m) :
u, v, w = map(int, input().split())
graph[u].append((v,w))
start, end = map(int, input().split())
inf = float("inf")
distance = [inf for _ in range(n+1)]
distance[start] = 0
prevNode = [0]*(n+1)
heap = []
heapq.heappush(heap, (0, start))
while len(heap) != 0 :
cur_dist, now = heapq.heappop(heap)
if distance[now] < cur_dist :
continue
for Next in graph[now] :
next, nw = Next
if distance[next] > distance[now] + nw :
distance[next] = distance[now] + nw
heapq.heappush(heap, (distance[next], next))
prevNode[next] = now
channel = [end]
ptr = end
while ptr != start :
ptr = prevNode[ptr]
channel.append(ptr)
channel.reverse()
print(distance[end])
print(len(channel))
print(*channel)