Pagini recente » concurs-mihai-patrascu-2013/clasament | Cod sursa (job #891410) | Cod sursa (job #2545480) | Monitorul de evaluare | Cod sursa (job #1419727)
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.