Files
Algorithm/백준/1753.py
2026-04-11 11:48:03 +09:00

34 lines
763 B
Python

import sys
input = sys.stdin.readline
from queue import PriorityQueue
V, E = map(int, input().split())
K = int(input())
distance = [sys.maxsize] * (V+1)
visited = [False] * (V+1)
myList = [[] for _ in range(V+1)]
q = PriorityQueue()
for _ in range(E):
u, v, w = map(int, input().split())
myList[u].append((v, w))
q.put((0, K))
distance[K] = 0
while q.qsize() > 0 :
current = q.get()
c_v = current[1]
if visited[c_v]:
continue
visited[c_v] = True
for next, value in myList[c_v]:
if distance[next] > distance[c_v] + value:
distance[next] = distance[c_v] + value
q.put((distance[next], next))
for i in range(1, V+1):
if visited[i]:
print(distance[i])
else:
print("INF")