Pagini recente » Cod sursa (job #415205) | Cod sursa (job #2790096) | Cod sursa (job #2646725) | Cod sursa (job #2816872) | Cod sursa (job #254827)
Cod sursa(job #254827)
var sel:array[1..20000] of boolean;
a:array[1..20000,1..20000] of longint;
i,nod,n,m,j,min:longint;
f,g:text;
d:array[1..20000] of longint;
procedure load;
var i,x,y,z:longint;
begin
assign(f,'dijkstra.in'); reset(f);
assign(g,'dijkstra.out'); rewrite(g);
readln(f,n,m);
for i:=1 to n do
for j:=1 to n do
if i<>j then a[i,j]:=1 shl 30;
for i:=1 to m do
begin
readln(f,x,y,z);
a[x,y]:=z;
end;
end;
begin
load;
for i:=1 to n do d[i]:=1 shl 30;
d[1]:=0;
fillchar(sel,sizeof(sel),false);
while true do
begin
min:=1 shl 30;
for i:=1 to n do
if (min>d[i])and(sel[i]=false) then
begin
min:=d[i];
nod:=i;
end;
sel[nod]:=true;
if min=1 shl 30 then break;
for i:=1 to n do
if i<>nod then
if d[nod]+a[nod,i]<d[i] then d[i]:=d[nod]+a[nod,i];
end;
for i:=2 to n do write(g,d[i],' ');
close(g);
end.