Program PODSTANOVKI;
var n: longint;
a: array [1..100]
{-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure see(n:longint);
var i : longint;
Begin
For i := 1 to n do
write(a[i]);
end;
{-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure Fill(n: longint);
var i :longint;
begin
for i:= 1 to n do
a[i]:=i;
end;
{-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure perstanovka(j: longint);
var i,k,m:longint;
predel:boolean;
nomer:longint;
Begin
if j = 0 then
Fill(n)
else
perestanovka(j-1);
predel:=false;
for i:= n downto 1 begin
if a[i]=n then begin
predel:=true;
nomer:=i;
end;
end;
If predel then begin
a[nomer-1] := a[nomer-1] + 1;
a[nomer] := a[nomer-1]-1;
a[nomer+1] := a[nomer]+2;
for i:= (nomer+2) to n do
a[i]:=a[i-1}+1;
end
else
a[n]:=a[n] +1;
see(n);
end;
{-*-*-*-*-*-*-*-*-*-*-*-*-}
function factorial(m:longint):longint;
begin
factorial(1):=1;
factorial:=factorial(m-1)*m:
end;
{-*-*-*-*-*-*-*-*-*-*-*-*-}
begin
read(n);
perestanovki(factoreal(n));
end.
Программа о подстановках |