program perest_eff; uses crt,dos; const max_n=20; type vector=array[0..max_n] of integer; var f:text; procedure effect(var z:vector; n:integer); const k:longint=0; {количество перестановок} var p,d: vector; pm,dm,zpm: integer; i,m,w:integer; begin for i:=1 to n do begin z[i]:=i; p[i]:=i; d[i]:=-1; end; d[1]:=0; m:=n+1; z[0]:=m; z[n+1]:=m; while m<>1 do begin k:=k+1; write(f,k,') '); for i:=1 to n do write(f, z[i], ' '); writeln(f); m:=n; while z[p[m]+d[m]]>m do begin d[m]:=-d[m]; m:=m-1; end; pm:=p[m]; dm:=pm+d[m]; w:=z[pm]; z[pm]:=z[dm]; z[dm]:=w; zpm:=z[pm]; w:=p[zpm]; p[zpm]:=pm; p[m]:=w; end; end; var z:vector; n:integer; Hour, Minute, Second, Sec100: word; rHour, rMinute, rSecond, rSec100: word; delta:longint; begin write('Введите n=');readln(n); assign(f,'perest.txt'); rewrite(f); GetTime(Hour, Minute, Second, Sec100); Effect(z,n); GetTime(rHour, rMinute, rSecond, rSec100); delta:=rHour-Hour; delta:=delta*60+rMinute-Minute; delta:=delta*60+rSecond-Second; delta:=delta*100+rSec100-Sec100; Writeln(f,'Время счета=', delta div 100,'.', delta mod 100, ' сек'); close(f); end.