Cod sursa(job #340313)

Utilizator sapiensCernov Vladimir sapiens Data 14 august 2009 10:12:57
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.82 kb
Program royfloyd;
 var f,g:text; a:array[1..100,1..100]of longint;
     i,j,k,n:integer;
 function minim (x,y:longint):longint;
  begin
   if x<y then exit (x) else exit (y);
  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 read (f,a[i,j]);
    readln (f);
  end;
  for i:=1 to n do for j:=1 to n do if a[i,j]=0 then a[i,j]:=maxlongint div 4;
  for i:=1 to n do
    for j:=1 to n do
      for k:=1 to n do
        if (i<>j) and (i<>k) and (j<>k) then
          a[j,k]:=minim (a[j,k],a[j,i]+a[i,k]);
  for i:=1 to n do for j:=1 to n do if a[i,j]=maxlongint div 4 then a[i,j]:=0;
  for i:=1 to n do begin
    for j:=1 to n do write (g,a[i,j],' ');
    writeln (g);
  end;
  close (f); close (g);
 end.