Cod sursa(job #1613307)

Utilizator robertadRoxana Rodile robertad Data 25 februarie 2016 12:06:49
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.88 kb
program royfloyd;
var a:array[1..101,1..101] of integer;
    f,g:text;
    n:longint;
procedure citire;
var i,j:integer;
  begin
    assign(f,'royfloyd.in');
    assign(g,'royfloyd.out');
    reset(f);
    rewrite(g);
    readln(f,n);
    for i:=1 to n do
      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;
  end;
procedure afisare;
var i,j:integer;
  begin
    for i:=1 to n do
      begin
        for j:=1 to n do
          write(g,a[i,j],' ');
        writeln(g);
      end;
  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,j]>a[i,k]+a[k,j] then
                       a[i,j]:=a[i,k]+a[k,j];
  end;
begin
  citire;
  roy;
  afisare;
  close(f);
  close(g);
end.