Cod sursa(job #3337060)

Utilizator DemoAlex Vlad Demo Data 26 ianuarie 2026 21:38:14
Problema Algoritmul lui Dijkstra Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.91 kb
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=" ")