Pagini recente » Cod sursa (job #2435671) | Cod sursa (job #2826073) | Cod sursa (job #128381) | Cod sursa (job #2590965) | Cod sursa (job #693781)
Cod sursa(job #693781)
program dijkstra;
var f,g:text;
n,m,i,j,poz1,poz2,cost:longint;
a:array[1..5000,1..5000] of integer;
d:array[1..50000] of longint;
viz:array[1..50000] of 0..1;
min,poz: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
a[i,j]:=maxint;
for i:=1 to m do
begin
readln (f,poz1,poz2,cost);
a[poz1,poz2]:=cost;
end;
for i:=2 to n do
d[i]:=a[1,i];
viz[1]:=1;
for i:=1 to n-1 do
begin
min:=maxlongint;
for j:=1 to n do
if viz[j]=0 then
if d[j]<min then
begin
min:=d[j]; poz:=j;
end;
viz[poz]:=1;
for j:=1 to n do
if viz[j]=0 then
if d[j]>d[poz]+a[poz,j] then
d[j]:=d[poz]+a[poz,j];
end;
for i:=2 to n do
begin
if d[i]=maxlongint then
d[i]:=0;
write (G,d[i],' ');
end;
close (F); close (g);
end.