Ai tìm giúp mình lỗi trong thuật toán này với!
VAR
dem,i,j,n,k:INTEGER;
kt:BOOLEAN;
a:ARRAY[1..100,1..100] OF INTEGER;
PROCEDURE hv(dem:INTEGER);
BEGIN
FOR i:=1 TO n DO BEGIN
kt:=TRUE;
IF dem>1 THEN FOR j:=1 TO dem-1 DO IF a[k,j]=a[k,dem] THEN kt:=FALSE;
IF kt=TRUE THEN a[k,dem]:=i;
IF dem < n THEN hv(dem+1) ELSE k:=k+1;
END;
END;
BEGIN
readln(n);
k:=1;
hv(1);
FOR i:=1 TO k-1 DO BEGIN
FOR j:=1 TO n DO write(a[i,j]);
writeln;
END;
readln;
END.