Pagini recente » Cod sursa (job #2790923) | Cod sursa (job #2007874) | Cod sursa (job #1696767) | Cod sursa (job #1604140) | Cod sursa (job #3325403)
from heapq import heappop, heappush
def citire():
with open('dijkstra.in') as file:
N , M = map(int,file.readline().split())
L = [[] for _ in range(N+1)]
for line in file:
u, v , cost = map(int,line.split())
L[u].append((v,cost))
return N , L
def dijkstra(s = 0, n = 5, L= []):
d = [float('inf')] * (n+1)
d[s] = 0
vis = [0]*(n+1)
Pq = []
heappush(Pq,(d[s],s))
while len(Pq) > 0:
curr_dist, node = heappop(Pq)
if vis[node] == 1:
continue
vis[node] = 1
for x in L[node]:
vecin = x[0]
cost = x[1]
if d[vecin] > d[node]+cost:
d[vecin] = d[node] + cost
heappush(Pq,(d[vecin],vecin))
return d
d = dijkstra(1,*citire())
with open('dijkstra.out', 'w') as file:
print(*d[2:], file = file)