Pagini recente » Cod sursa (job #2677751) | Cod sursa (job #2861825) | Cod sursa (job #2756935) | Cod sursa (job #713805) | Cod sursa (job #796587)
Cod sursa(job #796587)
Program p2;
var fi,fo:text;
p,g:0..15;
i,n,m,s:longint;
d,q:array[0..50005] of longint;
a,b,c:array[0..100003] of longint;
Procedure verific;
var i,k:longint; t:boolean;
begin
if d[s]<>0 then writeln(fo,'NU')
else begin
t:=true;
for i:=1 to n do q[i]:=0;
for i:=1 to m do if d[a[i]]+c[i]<d[b[i]] then t:=false
else if (d[a[i]]+c[i]=d[b[i]]) then q[b[i]]:=1;
if t=false then writeln(fo,'NU')
else begin
k:=0;
for i:=1 to n do k:=k+q[i];
if k=n-1 then writeln(fo,'DA');
end;
end;
end;
begin
assign(fi,'distante.in'); reset(fi);
assign(fo,'distante.out'); rewrite(fo);
readln(fi,p);
for g:=1 to p do begin
readln(fi,n,m,s);
for i:=1 to n do read(fi,d[i]);
for i:=1 to m do readln(fi,a[i],b[i],c[i]);
verific;
readln(fi);
end;
close(fi); close(fo);
end.