Cod sursa(job #270751)

Utilizator FllorynMitu Florin Danut Flloryn Data 4 martie 2009 15:22:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
PROGRAM PASCAL;
var f,g:Text; var a:array[1..100,1..100] of longint;
    i,j,n,k:longint;

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

  procedure me;
  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] then a[i,j]:=a[i,k]+a[k,j];
  end;

  procedure afisare;
  begin
   for i:=1 to n do
    begin
    for j:=1 to n do
     begin
       if a[i,j]=maxint then a[i,j]:=0;
       write(g,a[i,j],' ');
     end;
    writeln(g);
    end;
   close(g);
  end;

begin
citire;
me;
afisare;
end.