Cod sursa(job #701765)

Utilizator doruletzPetrican Teodor doruletz Data 1 martie 2012 17:46:12
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.58 kb
var f:text;
    i,j,k,n:integer;
    a:array[0..101,0..101]of integer;

function min(a,b:integer):integer;
begin
 if a<b then min:=a else min:=b;
end;

begin
 assign(f,'royfloyd.in'); reset(f);
  readln(f,n);
  for i:=1 to n do begin
   for j:=1 to n do begin read(f,a[i,j]); if (a[i,j]=0)and(i<>j) then a[i,j]:=maxint; end;
   readln(f);
  end;
 close(f);

 for k:=1 to n do
  for i:=1 to n do
   for j:=1 to n do
    a[i,j]:=min(a[i,j],a[i,k]+a[k,i]);

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