Pagini recente » Cod sursa (job #2861570) | Cod sursa (job #770603) | Cod sursa (job #2433995) | Cod sursa (job #713466) | Cod sursa (job #3337060)
import heapq
with open("dijkstra.in", "r") as fin:
lines = fin.readlines()
n = int(lines[0].split(" ")[0])
m = int(lines[0].split(" ")[1])
scores = [0] * (n+1)
adj = [[] for _ in range(n+1)]
winners = []
for i in range(1, n+1):
u = int(lines[i].split(" ")[0])
v = int(lines[i].split(" ")[1])
w = int(lines[i].split(" ")[2])
adj[u].append((w, v))
d = [float("inf")] * (n+1)
viz = [False] * (n+1)
pq = []
d[1] = 0
heapq.heappush(pq, (0, 1))
while pq:
u = heapq.heappop(pq)[1]
if viz[u]:
continue
viz[u] = True
for entry in adj[u]:
v = entry[1]
w = entry[0]
if not viz[v] and d[v] > d[u] + w:
d[v] = d[u] + w
heapq.heappush(pq, (d[v], v))
for i in range(2, n+1):
print(d[i], end=" ")