Cod sursa(job #176096)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 10 aprilie 2008 18:54:27
Problema Algoritmul lui Dijkstra Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
var min,n,m,j,i,q,w,e,nr:longint;
    d:array[1..50001] of longint;
    viz:array[1..50001] of 0..1;
    c:array[1..50001,1..50001] of longint;
begin
assign(input,'dijkstra.in'); reset(input);
assign(output,'dijkstra.out'); rewrite(output);
readln(n,m);
for i:=1 to n do
  begin
   viz[i]:=0;
   for j:=1 to n do c[i,j]:=1001;
   c[i,i]:=0;
  end;
for i:=1 to m do
  begin
    readln(q,w,e);
    c[q,w]:=e;
  end;
for i:=2 to n do d[i]:=c[1,i];
nr:=1; viz[1]:=1;
while nr<n do
   begin
     min:=1001;
     for i:=2 to n do if (d[i]<min)and(viz[i]=0) then begin min:=d[i]; q:=i;end;
     inc(nr);
     viz[q]:=1;
     for i:=2 to n do
        if (viz[i]=0)and(d[i]>d[q]+c[q,i]) then d[i]:=d[q]+c[q,i];
   end;
for i:=2 to n do write(d[i],' ');
close(input);
close(output);
end.