Cod sursa(job #191733)

Utilizator 7RaduRadu Antohi 7Radu Data 28 mai 2008 08:21:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.72 kb
program floyd;
var
    n, i, j, k : longint;
    a : array[0..200,0..200] of longint;
    fl : text;
begin
   assign(fl,'royfloyd.in');
   reset(fl);
   readln(fl,n);
   for i := 1 to n do
      for j := 1 to n do
          read(fl,a[i,j]);
    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,j] <> 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];
   close(fl);

   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.