{$IFDEF FPC} {$MODE DELPHI} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} uses sysutils; type tPermfield = array[0..15] of Nativeint; var permcnt: NativeUint; procedure DoSomething(k: NativeInt;var x:tPermfield); var i:integer; kk:string; begin kk:=''; for i:=1 to k do kk:=kk+inttostr(x[i])+' '; writeln(kk); end; procedure PermKoutOfN(k,n: nativeInt); var x,y:tPermfield; i,yi,tmp:NativeInt; begin //initialise permcnt:= 1; if k>n then k:=n; if k=n then k:=k-1; for i:=1 to n do x[i]:=i; for i:=1 to k do y[i]:=i; // DoSomething(k,x); i := k; repeat yi:=y[i]; if yi