September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -0,0 +1,46 @@
|
|||
#COMPILE EXE
|
||||
#DIM ALL
|
||||
|
||||
SUB aux(n AS INTEGER, i AS INTEGER, a() AS INTEGER, _
|
||||
u() AS INTEGER, v() AS INTEGER, m AS QUAD)
|
||||
|
||||
LOCAL j, k, p, q AS INTEGER
|
||||
IF i > n THEN
|
||||
INCR m
|
||||
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
|
||||
CALL 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
|
||||
|
||||
FUNCTION PBMAIN () AS LONG
|
||||
LOCAL n, i AS INTEGER
|
||||
LOCAL m AS QUAD
|
||||
IF COMMAND$(1) <> "" THEN
|
||||
n = VAL(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
|
||||
CALL aux(n, 1, a(), u(), v(), m)
|
||||
PRINT m
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
#COMPILE EXE
|
||||
#DIM ALL
|
||||
|
||||
FUNCTION PBMAIN () AS LONG
|
||||
LOCAL n, i, j, k, p, q AS INTEGER
|
||||
LOCAL m AS QUAD
|
||||
IF COMMAND$(1) <> "" THEN
|
||||
n = VAL(COMMAND$(1))
|
||||
REDIM a(1 TO n) AS INTEGER
|
||||
REDIM s(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
|
||||
i = 1
|
||||
1 IF i > n THEN
|
||||
INCR m
|
||||
FOR k = 1 TO n : PRINT a(k); : NEXT : PRINT
|
||||
GOTO 4
|
||||
END IF
|
||||
j = i
|
||||
2 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
|
||||
s(i) = j
|
||||
INCR i
|
||||
GOTO 1
|
||||
END IF
|
||||
3 INCR j : IF j <= n GOTO 2
|
||||
4 DECR i : IF i = 0 THEN PRINT m : EXIT FUNCTION
|
||||
j = s(i)
|
||||
k = a(i) : a(i) = a(j) : a(j) = k
|
||||
p = i - k + n
|
||||
q = i + k - 1
|
||||
u(p) = 1 : v(q) = 1
|
||||
GOTO 3
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
defint a-z
|
||||
option base 1
|
||||
input "n=",n
|
||||
dim a(n), s(n), u(4*n-2)
|
||||
for i=1 to n: a(i)=i: next
|
||||
for i=1 to 4*n-2: u(i)=0: next
|
||||
m=0
|
||||
i=1
|
||||
r=2*n-1
|
||||
goto 20
|
||||
10 s(i)=j
|
||||
u(p)=1
|
||||
u(q+r)=1
|
||||
incr i
|
||||
20 if i>n goto 60
|
||||
j=i
|
||||
30 z=a(i)
|
||||
y=a(j)
|
||||
p=i-y+n
|
||||
q=i+y-1
|
||||
a(i)=y
|
||||
a(j)=z
|
||||
if u(p)=0 and u(q+r)=0 goto 10
|
||||
40 incr j
|
||||
if j<=n goto 30
|
||||
50 decr j
|
||||
if j=i goto 70
|
||||
swap a(i),a(j)
|
||||
goto 50
|
||||
60 incr m
|
||||
for k=1 to n: print a(k);: next: print
|
||||
70 decr i
|
||||
if i=0 goto 80
|
||||
p=i-a(i)+n
|
||||
q=i+a(i)-1
|
||||
j=s(i)
|
||||
u(p)=0
|
||||
u(q+r)=0
|
||||
goto 40
|
||||
80 print m
|
||||
Loading…
Add table
Add a link
Reference in a new issue