서랍장
백준 solv4(#1504) 본문
import sys
import heapq
def dijk(v, r, x):
r[x-1] = 0
que = []
heapq.heappush(que, (r[x-1], r.index(r[x-1])))
while que:
vertex, index = heapq.heappop(que)
if r[index] < vertex:
continue
else:
for x, y in v[index+1].items():
weight = y + vertex
if r[x-1] >= weight:
r[x-1] = weight
heapq.heappush(que, (r[x-1], x-1))
input = sys.stdin.readline
INF = sys.maxsize
N, M, X = map(int, input().split())
village = {}
re_village = {}
result = [INF for _ in range(N)]
re_result = [INF for _ in range(N)]
for i in range(1, N+1):
village[i] = {}
re_village[i] = {}
for _ in range(M):
u, v, w = map(int, input().split())
village[u][v] = w
re_village[v][u] = w #key key value
dijk(village, result, X)
dijk(re_village, re_result, X)
for i in range(len(result)):
result[i] += re_result[i]
print(max(result))
'algorithm' 카테고리의 다른 글
leetcode 1060, 1901 (0) | 2022.10.26 |
---|---|
leetcode 1662 (0) | 2022.10.25 |
leetcode 189 (0) | 2022.10.25 |
leetcode 1239 (0) | 2022.10.24 |
binary search 이분 탐색 (0) | 2022.10.23 |
Comments