Problem Solving/백준
백준 1719 택배
minOE
2025. 7. 6. 03:03
728x90
https://www.acmicpc.net/problem/1719
import sys
import heapq
INF = sys.maxsize
n,m = map(int,input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a,b,time = map(int,input().split())
graph[a].append((time,b))
graph[b].append((time,a))
def dijkstra(start):
dist[start] =0
heapq.heappush(pq,(0,start))
while pq :
min_dist,min_node = heapq.heappop(pq)
if dist[min_node] != min_dist:
continue
for target_dist,target_node in graph[min_node]:
new_dist = min_dist+target_dist
if new_dist < dist[target_node]:
dist[target_node] = new_dist
heapq.heappush(pq,(new_dist,target_node))
road[target_node] = min_node
return road
ans =[]
for i in range(1,n+1):
dist = [INF for _ in range(n+1)]
road = [0 for _ in range(n+1)]
pq =[]
ans.append(dijkstra(i))
for j in range(1,n+1):
for i in range(n):
if ans[i][j] == 0 :
print("-",end=" ")
else:
print(ans[i][j],end=" ")
print()728x90