Cod sursa(job #3354649)

Utilizator mihaelajipaMihaela Jipa mihaelajipa Data 19 mai 2026 17:19:31
Problema Distante Scor 30
Compilator py Status done
Runda Arhiva de probleme Marime 0.78 kb
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()))

        edges = []

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

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

        for i in range(n - 1):
            for edge in edges:
                u, v, cost = edge

                if dist[u] != val and dist[u] + cost < dist[v]:
                    dist[v] = dist[u] + cost

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