Pagini recente » Cod sursa (job #2453962) | Cod sursa (job #2214826) | Cod sursa (job #1311038) | Cod sursa (job #2377857) | Cod sursa (job #290485)
Cod sursa(job #290485)
Program RoyFloyd;
var n : byte;
A : array[1..100,1..100] of integer;
procedure Citeste;
var Intrare : text;
i,j : byte;
begin
assign(Intrare,'royfloyd.in');
reset(Intrare);
readln(Intrare,n);
for i:=1 to n do
for j:=1 to n do read(Intrare,A[i,j]);
close(Intrare);
end;
procedure Calculeaza;
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) and (i<>j) then
if (A[i,k]+A[k,j]<A[i,j]) or (A[i,j]=0) then A[i,j]:=A[i,k]+A[k,j];
end;
procedure Scrie;
var Iesire : text;
i,j : integer;
begin
assign(Iesire,'royfloyd.out');
rewrite(Iesire);
for i:=1 to n do begin
for j:=1 to n do write(Iesire,A[i,j],' ');
writeln(Iesire);
end;
close(Iesire);
end;
begin
Citeste;
Calculeaza;
Scrie;
end.