Pagini recente » Cod sursa (job #1252287) | Cod sursa (job #106670) | Cod sursa (job #331277) | Cod sursa (job #2702016) | Cod sursa (job #154415)
Cod sursa(job #154415)
program RoyFloyd;
const fi='royfloyd.in';fo='royfloyd.out';
INF=1000000;
var H:array[1..100,1..100]of longint;
n:integer;
f,g:text;
ii,jj,cost:integer;
i,j:integer;
procedure Floyd;
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(i<>j)and(i<>k)and(j<>k) then
if(H[i,k]+H[k,j]<H[i,j])then
H[i,j]:=H[i,k]+H[k,j];
end;
begin
assign(f,fi);reset(f);
assign(g,fo);rewrite(g);
readln(f,n);
for i:=1 to n do begin
for j:=1 to n do begin
read(f,cost);
H[i,j]:=cost;
if cost=0 then H[i,j]:=INF;
end;
readln(f);
end;
Floyd;
for i:=1 to n do begin
for j:=1 to n do
if H[i,j]=INF then write(g,'0 ')
else write(g,H[i,j],' ');
writeln(g);
end;
close(g);
close(f);
end.