Cod sursa(job #930637)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 27 martie 2013 19:15:11
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
//Roy Floyd//doar lungimile drumurilor
//O(n^3)//100p infoarena
program saddasdasdasd;
type mat=array[1..100,1..100]of integer;
var d,a,c:mat;
    intrare,iesire:array[1..1 shl 17]of char;
    n,m:integer;
    f,g:text;

procedure initializare;
var i,j:integer;
begin
readln(f,n);
for i:=1 to n do
  begin
  for j:=1 to n do read(f,d[i,j]);
  readln(f);
  end;
end;

procedure drumuri(var d:mat);
var i,j,k:integer;
begin
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
 if(d[i,k]<>0)and(d[k,j]<>0)and(i<>j)then
  if(d[i,j]>d[i,k]+d[k,j])or(d[i,j]=0)then d[i,j]:=d[i,k]+d[k,j];
end;

procedure afisare;
var i,j:integer;
begin
for i:=1 to n do
 begin
 for j:=1 to n do write(g,d[i,j],' ');
 writeln(g);
 end;
end;

begin
assign(f,'royfloyd.in');  reset(f);   settextbuf(f,intrare);
assign(g,'royfloyd.out'); rewrite(g); settextbuf(g,iesire);
initializare;  drumuri(d);  afisare;
close(f);close(g);
end.