Cod sursa(job #295651)

Utilizator punkistBarbulescu Dan punkist Data 3 aprilie 2009 16:00:47
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.69 kb
var a:array[1..100,1..100] of longint;
    n:byte;
procedure Citire;
var f:text;
    i,j:integer;
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]);
   end;
 end;
close(f);
end;

procedure RoyFloyd;
var i,j,k:byte;
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 Scriere;
var i,j:byte;
    f:text;
begin
 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;

begin
Citire;
RoyFloyd;
Scriere;
end.