// output of ./demo/comb/cyclic-perm-gray-demo.cc:
// Description:
//% Generate all cyclic permutations in minimal-change order, CAT algorithm.

arg 1: 5 == n  [Cyclic permutations of n elements, n >= 2.]  default=5
   0:    [ 4 0 1 2 3 ]    [ . . . ]    (4, 3, 2, 1, 0)
   1:    [ 3 4 1 2 0 ]    [ 1 . . ]    (4, 0, 3, 2, 1)
   2:    [ 3 0 4 2 1 ]    [ 2 . . ]    (4, 1, 0, 3, 2)
   3:    [ 3 0 1 4 2 ]    [ 3 . . ]    (4, 2, 1, 0, 3)
   4:    [ 2 3 1 4 0 ]    [ 3 1 . ]    (4, 0, 2, 1, 3)
   5:    [ 2 3 4 0 1 ]    [ 2 1 . ]    (4, 1, 3, 0, 2)
   6:    [ 2 4 1 0 3 ]    [ 1 1 . ]    (4, 3, 0, 2, 1)
   7:    [ 4 3 1 0 2 ]    [ . 1 . ]    (4, 2, 1, 3, 0)
   8:    [ 4 0 3 1 2 ]    [ . 2 . ]    (4, 2, 3, 1, 0)
   9:    [ 2 4 3 1 0 ]    [ 1 2 . ]    (4, 0, 2, 3, 1)
  10:    [ 2 0 4 1 3 ]    [ 2 2 . ]    (4, 3, 1, 0, 2)
  11:    [ 2 0 3 4 1 ]    [ 3 2 . ]    (4, 1, 0, 2, 3)
  12:    [ 1 2 3 4 0 ]    [ 3 2 1 ]    (4, 0, 1, 2, 3)
  13:    [ 1 2 4 0 3 ]    [ 2 2 1 ]    (4, 3, 0, 1, 2)
  14:    [ 1 4 3 0 2 ]    [ 1 2 1 ]    (4, 2, 3, 0, 1)
  15:    [ 4 2 3 0 1 ]    [ . 2 1 ]    (4, 1, 2, 3, 0)
  16:    [ 4 3 0 2 1 ]    [ . 1 1 ]    (4, 1, 3, 2, 0)
  17:    [ 1 4 0 2 3 ]    [ 1 1 1 ]    (4, 3, 2, 0, 1)
  18:    [ 1 3 4 2 0 ]    [ 2 1 1 ]    (4, 0, 1, 3, 2)
  19:    [ 1 3 0 4 2 ]    [ 3 1 1 ]    (4, 2, 0, 1, 3)
  20:    [ 3 2 0 4 1 ]    [ 3 . 1 ]    (4, 1, 2, 0, 3)
  21:    [ 3 2 4 1 0 ]    [ 2 . 1 ]    (4, 0, 3, 1, 2)
  22:    [ 3 4 0 1 2 ]    [ 1 . 1 ]    (4, 2, 0, 3, 1)
  23:    [ 4 2 0 1 3 ]    [ . . 1 ]    (4, 3, 1, 2, 0)