Cod sursa(job #929052)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 26 martie 2013 20:17:53
Problema Algoritmul lui Dijkstra Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
program dijkkk;
const infinit=2000000001;
var v:array[1..3,1..250001]of longint;
    a:array[1..50001]of longint;
    n,m:longint;
    f,g:text;
    intrare,iesire:array[1..300000]of char;
procedure initializare;
var i:longint;
begin
readln(f,n,m);
for i:=1 to m do read(f,v[1,i],v[2,i],v[3,i]);
end;


procedure dijk;
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
   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;

procedure afisare;
var i:longint;
begin
  for i:=2 to n do if a[i]=infinit then write(g,'0 ')
                                   else write(g,a[i],' ');

end;

begin
assign(f,'dijkstra.in'); reset(f);  settextbuf(f,intrare);
assign(g,'dijkstra.out');rewrite(g); settextbuf(g,iesire);
initializare;
dijk;
afisare;
close(f);close(g);
end.