Pagini recente » Cod sursa (job #581552) | Cod sursa (job #1842972) | Cod sursa (job #1660780) | Cod sursa (job #2914052) | Cod sursa (job #896742)
Cod sursa(job #896742)
const infinit=1000000000;
var v:array[1..3,1..250000]of longint;
a:array[1..50000]of longint;
n,m:longint;
procedure init;
var f:text; i:longint;
begin
assign(f,'dijkstra.in');
reset(f);
readln(f,n,m);
for i:=1 to m do read(f,v[1,i],v[2,i],v[3,i]);
close(f);
end;
procedure solve;
var i:longint; k:longint;
begin
a[1]:=0; for i:=2 to n do a[i]:=infinit;
k:=1;
while k<>0 do
begin
k:=0;
for i:=1 to m do
begin
if a[v[1,i]]>a[v[2,i]]+v[3,i] then begin a[v[1,i]]:=a[v[2,i]]+v[3,i]; inc(k); end;
if a[v[2,i]]>a[v[1,i]]+v[3,i] then begin a[v[2,i]]:=a[v[1,i]]+v[3,i]; inc(k); end;
end;
end;
end;
procedure finish;
var i:longint; f:text;
begin
assign(f,'dijkstra.out');
rewrite(f);
for i:=2 to n do if a[i]=infinit then write(f,'0 ') else write(f,a[i],' ');
close(f);
end;
begin
init;
solve;
finish;
end.