Cod sursa(job #165202)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 25 martie 2008 18:04:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.66 kb
var v:array[1..1000,1..1000]of longint;
    n,i,j,k:longint;
    f:text;
begin
   assign(f,'royfloyd.in');
   reset(f);
   read(f,n);
   for i:=1 to n do
   for j:=1 to n do
   begin
   read(f,v[i,j]);
   if v[i,j]=0 then v[i,j]:=1000000000;
   end;
   for k:=1 to n do
   for i:=1 to n do
   for j:=1 to n do
   if(i<>k)and(j<>k)and(i<>j)and(v[i,k]+v[k,j]<v[i,j])and(v[i,k]>0)and(v[k,j]>0)then v[i,j]:=v[i,k]+v[k,j];
   close(f);
   assign(f,'royfloyd.out');
   rewrite(f);
   for i:=1 to n do
   begin
   for j:=1 to n do
   if v[i,j]=1000000000 then write(f,0,' ')
   else
   write(f,v[i,j],' ');
   writeln(f);
   end;
   close(f);
end.