www.pudn.com > TJU.rar > ac1098.pas
program tju1098;
const
maxn=100;
maxm=1000;
var
v1,v2:array[1..maxm]of byte;
len:array[1..maxm]of cardinal;
dist:array[0..maxn]of cardinal;
v:array[1..maxn]of boolean;
n,m,i,j,t,x:cardinal;
b:boolean;
procedure iterate;
begin
b:=false;
for j:=1 to m do
if v[v1[j]] then begin
t:=dist[v1[j]]+len[j];
if t>dist[v2[j]] then begin
dist[v2[j]]:=t;v[v2[j]]:=true;b:=true;
end;
end;
end;
begin
dist[0]:=maxlongint;
repeat
read(n,m);
for i:=1 to m do
read(v1[i],v2[i],len[i]);
{Shortest path}
dist[1]:=0;for i:=2 to n do dist[i]:=maxlongint;j:=1;
fillchar(v,sizeof(v),0);
while (j<>n) and (j>0) do begin
v[j]:=true;
for i:=1 to m do
if v1[i]=j then begin
t:=dist[j]+len[i];
if tx then writeln('Never') else writeln(x);
end;
end;
until seekeof;
end.