Cod sursa(job #166289)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 27 martie 2008 19:58:28
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.73 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.