Pagini recente » Cod sursa (job #1572911) | Cod sursa (job #877421) | Cod sursa (job #1031488) | Cod sursa (job #501619) | Cod sursa (job #896728)
Cod sursa(job #896728)
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 write(f,a[i],' ');
close(f);
end;
begin
init;
solve;
finish;
end.