Cod sursa(job #251961)

Utilizator TudorutzuMusoiu Tudor Tudorutzu Data 3 februarie 2009 18:03:04
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.8 kb
var f,g:text;
    n,i,j,k:integer;
    a,d:array[1..100,1..100] of longint;
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;
     d:=a;
     for i:=1 to n do
          for j:=1 to n do
               if d[i,j]=0 then d[i,j]:=maxint-2000;
     for k:=1 to n do
          for i:=1 to n do
               for j:=1 to n do if i<>j then
                    if a[i,k]+a[k,j]<d[i,j] then d[i,j]:=a[i,k]+a[k,j];
     for i:=1 to n do
     begin
          for j:=1 to n do
               if d[i,j]=maxint-2000 then write(g,'0 ')
                                else write(g,d[i,j],' ');
          writeln(g);
     end;
     close(g);
end.