Cod sursa(job #1419727)

Utilizator VandheerManPopescu Alin VandheerMan Data 16 aprilie 2015 11:39:27
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.1 kb
type
matrice=array[1..100,1..100] of integer;

var
a:matrice;
n:integer;

procedure citire(nume:string;var a:matrice; var n:integer);
        var
         i,j:integer;
         f:text;
        begin
         assign(f,nume);
         reset(f);
         read(f,n);
         for i:=1 to n do for j:=1 to n do read(f,a[i,j]);
         close(f);
        end;

procedure roy(var a:matrice);
        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]<>0) and (a[k,j]<>0) then
                if (a[i,j]>a[i,k]+a[k,j]) or (a[i,j]=0) and (i<>j) then
          a[i,j]:=a[i,k]+a[k,j];
        end;
procedure afis(nume:string;a:matrice;n:integer);
        var
         i,j:integer;
         f:text;
        begin
         assign(f,nume);
         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.in',a,n);
 roy(a);
 afis('royfloyd.out',a,n);
end.