Pagini recente » Cod sursa (job #2163326) | Cod sursa (job #1819260) | Cod sursa (job #219555) | Cod sursa (job #3330268) | Cod sursa (job #3354649)
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")