Cod sursa(job #1501824)

Utilizator ili226Vlad Ilie ili226 Data 13 octombrie 2015 21:09:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.04 kb
var f:text;
    g,sp{,a}:array[1..100,1..100]of integer;
    i,j,k,n:byte;
{procedure cale(i,j:shortint);
begin
if (a[i,j]<>i)and(i<>j) then
 begin
  cale(i,a[i,j]);
  write(a[i,j],' ');
  cale(a[i,j],j);
 end;
end;}

begin
assign(f,'royfloyd.in');
reset(f);
readln(f,n);
for i:=1 to n do 
 for j:=1 to n do 
   read(f,g[i,j]);   
close(f);
for i:=1 to n do
 for j:=1 to n do
  begin
   sp[i,j]:=maxint;
   {a[i,j]:=-1;}
  end;
for i:=1 to n do
 for j:=1 to n do
  if g[i,j]<>0 then
   begin
    sp[i,j]:=g[i,j];
    {a[i,j]:=i; }
   end;
for i:=1 to n do
 sp[i,i]:=0;
for k:=1 to n do 
 for i:=1 to n do
  for j:=1 to n do
   if sp[i,j]>sp[i,k]+sp[k,j] then
    begin sp[i,j]:=sp[i,k]+sp[k,j]; 
          {a[i,j]:=k}
    end;
assign(f,'royfloyd.out');
rewrite(f);
for i:=1 to n do
 begin
  for j:=1 to n do 
   write(f,sp[i,j],' ');
  writeln(f)
 end;
writeln(f);
{for i:=1 to n do
 begin
  for j:=1 to n do 
   write(f,a[i,j],' ');
  writeln(f)
 end;}
close(f);
{write('5 ');
cale(5,2);
writeln('2')}
end.