Cod sursa(job #190614)

Utilizator 7RaduRadu Antohi 7Radu Data 23 mai 2008 17:17:27
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator fpc Status done
Runda Arhiva educationala Marime 0.75 kb
program Floyd;
var
   a : array[1..100,1..100] of longint;
   fl : text;
   n,i,j,k:integer;
begin
   assign(fl,'royfloyd.in');
   reset(fl);
   readln(fl,n);
   for i := 1 to n do
     begin
     for j := 1 to n do
        read(fl,a[i,j]);
     readln(fl);
        end;
   close(fl);

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

    assign(fl,'royfloyd.out');
    rewrite(fl);
    for i := 1 to n do
       begin
          for j := 1 to n do
             write(fl,a[i,j],' ');
          writeln(fl);
        end;
    close(fl);
end.