728x90
반응형
import heapq
import sys
input = sys.stdin.readline
n, m, x = map(int,input().split())
# n 명, 도로 m 개 , x 마을에서
graph= [ [] for i in range(n+1)]
for i in range(m):
a,b,c = map(int,input().split())
graph[a].append((b,c))
def dij(start):
q = []
heapq.heappush(q, (0,start))
dist = [1e9]*(n+1)
dist[start] = 0
while q:
d, now = heapq.heappop(q)
if dist[now]<d : continue
for i in graph[now]:
cost = d + i[1]
if cost < dist[i[0]]:
dist[i[0]] = cost
heapq.heappush(q,(cost,i[0]))
return dist
result = [0]
dist_x = dij(x)
for i in range(1,n+1):
result.append( dij(i)[x] + dist_x[i] )
print ( max(result) )
728x90
반응형
'백준 > 최단경로' 카테고리의 다른 글
# 18352 특정 거리의 도시 찾기 (0) | 2021.04.10 |
---|---|
# 1504 특정한 최단 경로 (0) | 2021.04.10 |
# 1916 최소비용 구하기 파이썬 (0) | 2021.04.09 |
# 1753 최단 경로 파이썬 (0) | 2021.04.09 |