BSD 1 development
[unix-history] / tests / ancestor.p
program ancestor(output);
{R.W.Floyd: 'Ancestor', Comm.ACM 6-62 and 3-63, Alg.96}
const n = 100;
var i,j,k: integer;
r: array [1..n, 1..n] of boolean;
begin { r[i,j] = "i is a parent of j"}
for i := 1 to n do
for j := 1 to n do r[i,j] := false;
for i := 1 to n do
if i mod 10 <> 0 then r[i,i+1] := true;
writeln(clock);
for i := 1 to n do
for j := 1 to n do
if r[j,i] then
for k := 1 to n do
if r[i,k] then r[j,k] := true;
writeln(clock);
for i := 1 to n do
begin write(' ');
for j := 1 to n do write(chr(ord(r[i,j])+ord('0')));
writeln
end ;
writeln(clock)
end .