Cod sursa(job #3354651)

Utilizator mihaelajipaMihaela Jipa mihaelajipa Data 19 mai 2026 17:22:13
Problema Distante Scor 50
Compilator py Status done
Runda Arhiva de probleme Marime 0.91 kb
import heapq

with open("distante.in", "r") as f, open("distante.out", "w") as g:
    t = int(f.readline().strip())

    for _ in range(t):
        n, m, src = map(int, f.readline().split())

        initial = list(map(int, f.readline().split()))

        adj = [[] for _ in range(n + 1)]

        for _ in range(m):
            x, y, cost = map(int, f.readline().split())
            adj[x].append((y, cost))
            adj[y].append((x, cost))

        INF = 10**18
        dist = [INF] * (n + 1)
        dist[src] = 0

        pq = [(0, src)]

        while pq:
            d, u = heapq.heappop(pq)

            if d != dist[u]:
                continue

            for v, c in adj[u]:
                if dist[u] + c < dist[v]:
                    dist[v] = dist[u] + c
                    heapq.heappush(pq, (dist[v], v))

        if dist[1:] != initial:
            g.write("NU\n")
        else:
            g.write("DA\n")