Cod sursa(job #535514)

Utilizator ladyLittle Lady lady Data 17 februarie 2011 12:49:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.73 kb
type matrice=array[0..101,0..101] of integer;

var a:matrice;
    n:integer;

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

procedure roy;
var i,j,k:integer;
begin
 for k:=1 to n do
  for i:=1 to n do
   for j:=1 to n do
     if (a[i,k]+a[k,j]<a[i,j]) then
        a[i,j]:=a[i,k]+a[k,j];
end;

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

begin
 citire;
 roy;
 scrie;
end.