Cod sursa(job #898549)

Utilizator mada0222Tomus Madalina mada0222 Data 28 februarie 2013 10:40:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.2 kb
program sdgfxdgfd;
var f,g:text;
n,i,j,k:integer;
a:array[1..101,1..101] of integer;
procedure drum(i,j:integer);
var k:integer;
ok:boolean;
begin
   k:=1;
   ok:=false;
       while (k<=n) and (ok=false) do
          begin
          if (i<>k) and (j<>k) then
            if a[i,j]=a[i,k]+a[k,j] then
               begin
               drum(i,k);
               drum(k,j);
               ok:=true;
               end;
            k:=k+1;
          end;
          if not ok then writeln(g,j);
end;
begin
assign(f,'royfloyd.in'); reset(f);
assign(g,'royfloyd.out'); rewrite(g);
readln(f,n);
    for i:=1 to n do
       begin
          for j:=1 to n do
          begin
            read(f,a[i,j]);
            if (i<>j) and (a[i,j]=0) then
            a[i,j]:=maxint;
          end;
       readln(f);
       end;
for k:=1 to n do
   for i:=1 to n do
      for j:=1 to n do
          if a[i,j]>a[i,k]+a[k,j] then
             begin
             a[i,j]:=a[i,k]+a[k,j];
             end;
          for i:=1 to n do
             begin
             for j:=1 to n do
              write(g,a[i,j],' ');
              writeln(g);
             end;
{  drum(1,3);}
close(f);
close(g);
end.