Pagini recente » Istoria paginii runda/simulareoji3/clasament | Istoria paginii runda/valicaroom2 | Istoria paginii runda/laborator_9a_azzi | Istoria paginii runda/hbeu/clasament | Cod sursa (job #1363685)
program distante;
var d:array[1..50000] of longint;
n,m,i,j,cost,k,x,y,t,s:longint;
ok:boolean;
f,g:text;
begin
assign(f,'distante.in'); reset(f);
assign(g,'distante.out'); rewrite(g);
readln(f,t);
for i:=1 to t do
begin
readln(f,n,m,s);
for j:=1 to n do
read(f,d[j]);
ok:=true;
if d[s]<>0 then
ok:=false
else
for k:=1 to m do
begin
readln(f,x,y,cost);
if (d[x]+cost<d[y])or(d[y]+cost<d[x]) then
begin
ok:=false;
break;
end;
end;
if ok then
writeln(g,'DA')
else
writeln(g,'NU');
end;
close(f);
close(g);
end.