42 lines
995 B
Plaintext
42 lines
995 B
Plaintext
Sub aux(n As Integer, i As Integer, a() As Integer, _
|
|
u() As Integer, v() As Integer, ByRef m As LongInt)
|
|
|
|
Dim As Integer j, k, p, q
|
|
If i > n Then
|
|
m += 1
|
|
For k = 1 To n : Print a(k); : Next : Print
|
|
Else
|
|
For j = i To n
|
|
k = a(j)
|
|
p = i - k + n
|
|
q = i + k - 1
|
|
If u(p) And v(q) Then
|
|
u(p) = 0 : v(q) = 0
|
|
a(j) = a(i) : a(i) = k
|
|
aux(n, i + 1, a(), u(), v(), m)
|
|
u(p) = 1 : v(q) = 1
|
|
a(i) = a(j) : a(j) = k
|
|
End If
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Dim As Integer n, i
|
|
Dim m As LongInt = 1
|
|
If Command(1) <> "" Then
|
|
n = CInt(Command(1))
|
|
ReDim a(1 To n) As Integer
|
|
ReDim u(1 To 2 * n - 1) As Integer
|
|
ReDim v(1 To 2 * n - 1) As Integer
|
|
For i = 1 To n
|
|
a(i) = i
|
|
Next
|
|
For i = 1 To 2 * n - 1
|
|
u(i) = 1
|
|
v(i) = 1
|
|
Next
|
|
m = 0
|
|
aux(n, 1, a(), u(), v(), m)
|
|
Print m
|
|
End If
|