// output of ./demo/comb/perm1-prefix-cond-demo.cc:
// Description:
//% Permutations with restricted prefixes.
//% Knuth's "Algorithm X", section 7.2.1.2, p.334 in vol.4A1 of TAOCP.

arg 1: 5 == n  [Permutations of {1, 2, ..., n}]  default=5
arg 2: 4 == c  [Condition function:
      (0: empty), (1: involutions),
      (2: up-down), (3: indecomposable),
      (4: derangement), (5: no [x,x+1])
      (6: distance condition)]  default=4
Derangements:
   1:  [ 1 0 3 4 2 ]    [ 1 . 1 1 ]    (0, 1) (2, 3, 4)    
   2:  [ 1 0 4 2 3 ]    [ 1 . 2 . ]    (0, 1) (2, 4, 3)    
   3:  [ 1 2 0 4 3 ]    [ 1 1 . 1 ]    (0, 1, 2) (3, 4)    
   4:  [ 1 2 3 4 0 ]    [ 1 1 1 1 ]    (0, 1, 2, 3, 4)     
   5:  [ 1 2 4 0 3 ]    [ 1 1 2 . ]    (0, 1, 2, 4, 3)     
   6:  [ 1 3 0 4 2 ]    [ 1 2 . 1 ]    (0, 1, 3, 4, 2)     
   7:  [ 1 3 4 0 2 ]    [ 1 2 2 . ]    (0, 1, 3) (2, 4)    
   8:  [ 1 3 4 2 0 ]    [ 1 2 2 1 ]    (0, 1, 3, 2, 4)     
   9:  [ 1 4 0 2 3 ]    [ 1 3 . . ]    (0, 1, 4, 3, 2)     
  10:  [ 1 4 3 0 2 ]    [ 1 3 2 . ]    (0, 1, 4, 2, 3)     
  11:  [ 1 4 3 2 0 ]    [ 1 3 2 1 ]    (0, 1, 4) (2, 3)    
  12:  [ 2 0 1 4 3 ]    [ 2 . . 1 ]    (0, 2, 1) (3, 4)    
  13:  [ 2 0 3 4 1 ]    [ 2 . 1 1 ]    (0, 2, 3, 4, 1)     
  14:  [ 2 0 4 1 3 ]    [ 2 . 2 . ]    (0, 2, 4, 3, 1)     
  15:  [ 2 3 0 4 1 ]    [ 2 2 . 1 ]    (0, 2) (1, 3, 4)    
  16:  [ 2 3 1 4 0 ]    [ 2 2 1 1 ]    (0, 2, 1, 3, 4)     
  17:  [ 2 3 4 0 1 ]    [ 2 2 2 . ]    (0, 2, 4, 1, 3)     
  18:  [ 2 3 4 1 0 ]    [ 2 2 2 1 ]    (0, 2, 4) (1, 3)    
  19:  [ 2 4 0 1 3 ]    [ 2 3 . . ]    (0, 2) (1, 4, 3)    
  20:  [ 2 4 1 0 3 ]    [ 2 3 1 . ]    (0, 2, 1, 4, 3)     
  21:  [ 2 4 3 0 1 ]    [ 2 3 2 . ]    (0, 2, 3) (1, 4)    
  22:  [ 2 4 3 1 0 ]    [ 2 3 2 1 ]    (0, 2, 3, 1, 4)     
  23:  [ 3 0 1 4 2 ]    [ 3 . . 1 ]    (0, 3, 4, 2, 1)     
  24:  [ 3 0 4 1 2 ]    [ 3 . 2 . ]    (0, 3, 1) (2, 4)    
  25:  [ 3 0 4 2 1 ]    [ 3 . 2 1 ]    (0, 3, 2, 4, 1)     
  26:  [ 3 2 0 4 1 ]    [ 3 2 . 1 ]    (0, 3, 4, 1, 2)     
  27:  [ 3 2 1 4 0 ]    [ 3 2 1 1 ]    (0, 3, 4) (1, 2)    
  28:  [ 3 2 4 0 1 ]    [ 3 2 2 . ]    (0, 3) (1, 2, 4)    
  29:  [ 3 2 4 1 0 ]    [ 3 2 2 1 ]    (0, 3, 1, 2, 4)     
  30:  [ 3 4 0 1 2 ]    [ 3 3 . . ]    (0, 3, 1, 4, 2)     
  31:  [ 3 4 0 2 1 ]    [ 3 3 . 1 ]    (0, 3, 2) (1, 4)    
  32:  [ 3 4 1 0 2 ]    [ 3 3 1 . ]    (0, 3) (1, 4, 2)    
  33:  [ 3 4 1 2 0 ]    [ 3 3 1 1 ]    (0, 3, 2, 1, 4)     
  34:  [ 4 0 1 2 3 ]    [ 4 . . . ]    (0, 4, 3, 2, 1)     
  35:  [ 4 0 3 1 2 ]    [ 4 . 2 . ]    (0, 4, 2, 3, 1)     
  36:  [ 4 0 3 2 1 ]    [ 4 . 2 1 ]    (0, 4, 1) (2, 3)    
  37:  [ 4 2 0 1 3 ]    [ 4 2 . . ]    (0, 4, 3, 1, 2)     
  38:  [ 4 2 1 0 3 ]    [ 4 2 1 . ]    (0, 4, 3) (1, 2)    
  39:  [ 4 2 3 0 1 ]    [ 4 2 2 . ]    (0, 4, 1, 2, 3)     
  40:  [ 4 2 3 1 0 ]    [ 4 2 2 1 ]    (0, 4) (1, 2, 3)    
  41:  [ 4 3 0 1 2 ]    [ 4 3 . . ]    (0, 4, 2) (1, 3)    
  42:  [ 4 3 0 2 1 ]    [ 4 3 . 1 ]    (0, 4, 1, 3, 2)     
  43:  [ 4 3 1 0 2 ]    [ 4 3 1 . ]    (0, 4, 2, 1, 3)     
  44:  [ 4 3 1 2 0 ]    [ 4 3 1 1 ]    (0, 4) (1, 3, 2)    
 ct=44
