Cod sursa(job #226946)

Utilizator johnyJohny Deep johny Data 3 decembrie 2008 09:54:58
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.77 kb
program drumuri;
var A: array[1..100,1..100] of longint;
n: longint;

procedure cit;
var i,j: longint;
begin
  readln(n);
  for i:=1 to n do
   for j:=1 to n do
    read(A[i,j]);
end;

procedure royf;
var k,i,j: longint;
begin
  for k:=1 to n do
   for i:=1 to n do
    for j:=1 to n do
    if (A[i,j]>A[i,k]+A[k,j])and(A[i,k]>0)and(A[k,j]>0)
      or(i<>j)and(A[i,j]=0)and(A[i,k]>0)and(A[k,j]>0)
    then
       A[i,j]:=A[i,k]+A[k,j];
end;

procedure sol;
var i,j: longint;
begin
  for i:=1 to n do
  begin
    for j:=1 to n do
     write(A[i,j],' ');
    writeln;
  end;
end;

begin
  assign(input,'royfloyd.in');
  reset(input);
  assign(output,'royfloyd.out');
  rewrite(output);
  cit;
  royf;
  sol;
  close(input);
  close(output)
end.