Cod sursa(job #340299)

Utilizator sapiensCernov Vladimir sapiens Data 14 august 2009 09:46:27
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.78 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 for j:=1 to n do a[i,j]:=maxlongint div 4;
  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
      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 begin
    for j:=1 to n do
      if a[i,j]=maxlongint div 4 then write (g,'0 ') else write (g,a[i,j],' ');
    writeln (g);
  end;
  close (f); close (g);
 end.