Pagini recente » Diferente pentru utilizator/deehoroejkoli intre reviziile 23 si 150 | Diferente pentru utilizator/dariusbandila intre reviziile 13 si 14 | Diferente pentru utilizator/ramona2007 intre reviziile 47 si 8 | Diferente pentru utilizator/banana intre reviziile 36 si 7 | Cod sursa (job #295655)
Cod sursa(job #295655)
var a:array[1..100,1..100] of longint;
n:byte;
procedure Citire;
var f:text;
i,j:integer;
begin
assign(f,'royfloyd.in');
reset(f);
readln(f,n);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(f,a[i,j]);
end;
end;
close(f);
end;
procedure RoyFloyd;
var i,j,k:byte;
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 Scriere;
var i,j:byte;
f:text;
begin
assign(f,'royfloyd.out');
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;
Scriere;
end.