Cod sursa(job #680753)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 15 februarie 2012 21:38:31
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.67 kb
Program arena_roy_floyd;
var fi, fo : text;
    a : array[0..101,0..101] of longint;
    n,k,i,j : longint;
begin
     assign(fi,'royfloyd.in'); reset(fi); readln(fi,n);
     assign(fo,'royfloyd.out'); rewrite(fo);
     for i:=1 to n do a[i,i]:=0;
     for i:=1 to n do for j:=1 to n do read(fi,a[i,j]);

     for k:=1 to n do
        for i:=1 to n do
           for j:=1 to n do if
                 ((a[i,j]>a[i,k]+a[k,j]) or (a[i,j]=0)) and (i<>j) and (a[k,j]<>0) and (a[i,j]<>0) then a[i,j]:=a[i,k]+a[k,j];

    for i:=1 to n do begin
        for j:=1 to n-1 do write(fo,a[i,j],' ');
        writeln(fo,a[i,n]);
          end;
    close(fi);  close(fo);
end.