Cod sursa(job #410016)

Utilizator nickyyLal Daniel Emanuel nickyy Data 4 martie 2010 00:01:16
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.72 kb
const maxn=101;
  inf=maxlongint;
var d:array[0..maxn,0..maxn]of longint;
  n,i,j:longint;

 function min(x,y:longint):longint;
 begin
   if(x>y)then min:=y  else min:=x;
 end;

 procedure FloydWarshall;
 var i,u,v:longint;
 begin
   for i:=1 to n do
     for u:=1 to n do
       for v:=1 to n do
         if(d[u,i]<>0)and(d[i,v]<>0)and(u<>v)then
           d[u,v]:=min(d[u,v],d[u,i]+d[i,v]);
 end;

begin
  assign(input,'royfloyd.in'); reset(input); readln(n);
  for i:=1 to n do begin for j:=1 to n do read(d[i,j]); readln; end;
  close(input);
  FloydWarshall;
  assign(output,'royfloyd.out'); rewrite(output);
  for i:=1 to n do begin for j:=1 to n do write(d[i,j],' '); writeln end;
  close(output);
end.