Cod sursa(job #165997)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 27 martie 2008 11:42:35
Problema Algoritmul lui Dijkstra Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.92 kb
program dikstr;
var A : array [1..10000,1..10000] of integer;
    S,D : array [1..10000] of integer;
    m,n,i,j,l,min,poz : integer;
    f,g : text;
begin
assign(f,'dijkstra.in');
reset(f);
assign(g,'dijkstra.out');
rewrite(g);

readln(f,n,m);

for i := 1 to n do begin
S[i] := 0 ;
for j := 1 to n do
A[i,j] := 30000;
end;


for l := 1 to m do begin
read(f,i,j);
readln(f,A[i,j]);
end;


S[1] := 1;
for i := 1 to n do
D[i] := A[1,i];


for i := 1 to n-1 do begin
min := 30000;
for j := 1 to n do
if S[j]=0 then
          if D[j]<min then begin
                           min := D[j];
                           poz := j;
                           end;
S[poz] := 1;
for j := 1 to n do
if S[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
if D[i]<>30000 then write(g,D[i],' ')
                else write(g,'0 ');

close(f);
close(g);
end.