// output of ./demo/comb/catalan-demo.cc:
// Description:
//% Catalan restricted growth strings (RGS) and parentheses strings in minimal-change order.

arg 1: 5 == n  [Number of paren pairs]  default=5
arg 2: 1 == xdr  [Change direction in recursion ==> minimal-change order]  default=1
arg 3: -1 == dr0  [Starting direction in recursion (+-1)]  default=-1
  1:  [ 0 1 2 3 4 ]    [ - - - - - ]    ((((()))))    11111.....
  2:  [ 0 1 2 3 3 ]    [ - - - - - ]    (((()())))    1111.1....   ((((XA))))
  3:  [ 0 1 2 3 2 ]    [ - - - - - ]    (((())()))    1111..1...   (((()XA)))
  4:  [ 0 1 2 3 1 ]    [ - - - - - ]    (((()))())    1111...1..   (((())XA))
  5:  [ 0 1 2 3 0 ]    [ - - - - - ]    (((())))()    1111....1.   (((()))XA)
  6:  [ 0 1 2 2 0 ]    [ - - - - + ]    ((()()))()    111.1...1.   (((XA)))()
  7:  [ 0 1 2 2 1 ]    [ - - - - + ]    ((()())())    111.1..1..   ((()())AX)
  8:  [ 0 1 2 2 2 ]    [ - - - - + ]    ((()()()))    111.1.1...   ((()()AX))
  9:  [ 0 1 2 2 3 ]    [ - - - - + ]    ((()(())))    111.11....   ((()(AX)))
 10:  [ 0 1 2 1 2 ]    [ - - - - - ]    ((())(()))    111..11...   ((()X(A)))  2
 11:  [ 0 1 2 1 1 ]    [ - - - - - ]    ((())()())    111..1.1..   ((())(XA))
 12:  [ 0 1 2 1 0 ]    [ - - - - - ]    ((())())()    111..1..1.   ((())()XA)
 13:  [ 0 1 2 0 0 ]    [ - - - - + ]    ((()))()()    111...1.1.   ((())XA)()
 14:  [ 0 1 2 0 1 ]    [ - - - - + ]    ((()))(())    111...11..   ((()))(AX)
 15:  [ 0 1 1 0 1 ]    [ - - - + - ]    (()())(())    11.1..11..   ((XA))(())
 16:  [ 0 1 1 0 0 ]    [ - - - + - ]    (()())()()    11.1..1.1.   (()())(XA)
 17:  [ 0 1 1 1 0 ]    [ - - - + + ]    (()()())()    11.1.1..1.   (()()AX)()
 18:  [ 0 1 1 1 1 ]    [ - - - + + ]    (()()()())    11.1.1.1..   (()()()AX)
 19:  [ 0 1 1 1 2 ]    [ - - - + + ]    (()()(()))    11.1.11...   (()()(AX))
 20:  [ 0 1 1 2 3 ]    [ - - - + - ]    (()((())))    11.111....   (()(A(X)))  2
 21:  [ 0 1 1 2 2 ]    [ - - - + - ]    (()(()()))    11.11.1...   (()((XA)))
 22:  [ 0 1 1 2 1 ]    [ - - - + - ]    (()(())())    11.11..1..   (()(()XA))
 23:  [ 0 1 1 2 0 ]    [ - - - + - ]    (()(()))()    11.11...1.   (()(())XA)
 24:  [ 0 1 0 1 0 ]    [ - - - - + ]    (())(())()    11..11..1.   (()X(A))()  2
 25:  [ 0 1 0 1 1 ]    [ - - - - + ]    (())(()())    11..11.1..   (())(()AX)
 26:  [ 0 1 0 1 2 ]    [ - - - - + ]    (())((()))    11..111...   (())((AX))
 27:  [ 0 1 0 0 1 ]    [ - - - - - ]    (())()(())    11..1.11..   (())(X(A))  2
 28:  [ 0 1 0 0 0 ]    [ - - - - - ]    (())()()()    11..1.1.1.   (())()(XA)
 29:  [ 0 0 0 0 0 ]    [ - - + + + ]    ()()()()()    1.1.1.1.1.   (XA)()()()
 30:  [ 0 0 0 0 1 ]    [ - - + + + ]    ()()()(())    1.1.1.11..   ()()()(AX)
 31:  [ 0 0 0 1 2 ]    [ - - + + - ]    ()()((()))    1.1.111...   ()()(A(X))  2
 32:  [ 0 0 0 1 1 ]    [ - - + + - ]    ()()(()())    1.1.11.1..   ()()((XA))
 33:  [ 0 0 0 1 0 ]    [ - - + + - ]    ()()(())()    1.1.11..1.   ()()(()XA)
 34:  [ 0 0 1 2 0 ]    [ - - + - + ]    ()((()))()    1.111...1.   ()(A(X))()  2
 35:  [ 0 0 1 2 1 ]    [ - - + - + ]    ()((())())    1.111..1..   ()((())AX)
 36:  [ 0 0 1 2 2 ]    [ - - + - + ]    ()((()()))    1.111.1...   ()((()AX))
 37:  [ 0 0 1 2 3 ]    [ - - + - + ]    ()(((())))    1.1111....   ()(((AX)))
 38:  [ 0 0 1 1 2 ]    [ - - + - - ]    ()(()(()))    1.11.11...   ()((X(A)))  2
 39:  [ 0 0 1 1 1 ]    [ - - + - - ]    ()(()()())    1.11.1.1..   ()(()(XA))
 40:  [ 0 0 1 1 0 ]    [ - - + - - ]    ()(()())()    1.11.1..1.   ()(()()XA)
 41:  [ 0 0 1 0 0 ]    [ - - + - + ]    ()(())()()    1.11..1.1.   ()(()XA)()
 42:  [ 0 0 1 0 1 ]    [ - - + - + ]    ()(())(())    1.11..11..   ()(())(AX)
 ct=42
