Pagini recente » Cod sursa (job #845461) | Cod sursa (job #1437168) | Cod sursa (job #1013985) | Cod sursa (job #2053402) | Cod sursa (job #1557884)
var i,j,r,n,m,s,t,a,b,c,k:integer;
f,o:text;
res:boolean;
g:array [1..10] of boolean;
ps:array [1..10000] of integer;
matr:array [1..100,1..100] of integer;
Procedure Matrix();
var i,j,min:integer;
begin
min:=32000;
for i:=1 to n do
if ps[i]<>matr[s,i] then
for j:=1 to n do
if (matr[j,i]<>0)and(matr[j,i]<min) then
begin
matr[s,i]:=matr[s,j]+matr[j,i];
min:=matr[s,i];
end;
end;
begin
res:=true;
assign(o,'distante.out');
rewrite(o);
assign(f,'distante.in');
reset(f);
read(f,t);
for i:=1 to t do
begin
read(f,n,m,s);
for j:=1 to n do
read(f,ps[j]);
for r:=1 to m do
begin
read(f,a,b,c);
matr[a,b]:=c;
end;
Matrix();
for k:=1 to n do
if ps[k]=matr[s,k] then g[i]:=true else
begin g[i]:=false; break; end;
end;
for i:=1 to t do
if g[i]=true then writeln(o,'DA') else writeln(o,'NU');
close(o);
end.