// output of ./demo/comb/setpart-zero-map-rgs-demo.cc:
// Description:
//% Restricted growth strings (RGS) for set partitions:
//%   each digit a[k] is either zero or a[k] < k and a[a[k]] == 0.
//% Same as: maps from {1, 2, 3, ..., n} to {0, 1, 2, 3, ..., n}
//%   such that f(x) < x and f(f(x)) == 0.
//% Cf. OEIS sequence A000110.

arg 1: 5 == n  [RGS of length n]  default=5
   1:    [ . . . . . ]    [ . 1 2 3 4 ]    {1}, {2}, {3}, {4}, {5}
   2:    [ . . . . 1 ]    [ . 1 2 3 . ]    {1, 5}, {2}, {3}, {4}
   3:    [ . . . . 2 ]    [ . 1 2 3 1 ]    {1}, {2, 5}, {3}, {4}
   4:    [ . . . . 3 ]    [ . 1 2 3 2 ]    {1}, {2}, {3, 5}, {4}
   5:    [ . . . . 4 ]    [ . 1 2 3 3 ]    {1}, {2}, {3}, {4, 5}
   6:    [ . . . 1 . ]    [ . 1 2 . 4 ]    {1, 4}, {2}, {3}, {5}
   7:    [ . . . 1 1 ]    [ . 1 2 . . ]    {1, 4, 5}, {2}, {3}
   8:    [ . . . 1 2 ]    [ . 1 2 . 1 ]    {1, 4}, {2, 5}, {3}
   9:    [ . . . 1 3 ]    [ . 1 2 . 2 ]    {1, 4}, {2}, {3, 5}
  10:    [ . . . 2 . ]    [ . 1 2 1 4 ]    {1}, {2, 4}, {3}, {5}
  11:    [ . . . 2 1 ]    [ . 1 2 1 . ]    {1, 5}, {2, 4}, {3}
  12:    [ . . . 2 2 ]    [ . 1 2 1 1 ]    {1}, {2, 4, 5}, {3}
  13:    [ . . . 2 3 ]    [ . 1 2 1 2 ]    {1}, {2, 4}, {3, 5}
  14:    [ . . . 3 . ]    [ . 1 2 2 4 ]    {1}, {2}, {3, 4}, {5}
  15:    [ . . . 3 1 ]    [ . 1 2 2 . ]    {1, 5}, {2}, {3, 4}
  16:    [ . . . 3 2 ]    [ . 1 2 2 1 ]    {1}, {2, 5}, {3, 4}
  17:    [ . . . 3 3 ]    [ . 1 2 2 2 ]    {1}, {2}, {3, 4, 5}
  18:    [ . . 1 . . ]    [ . 1 . 3 4 ]    {1, 3}, {2}, {4}, {5}
  19:    [ . . 1 . 1 ]    [ . 1 . 3 . ]    {1, 3, 5}, {2}, {4}
  20:    [ . . 1 . 2 ]    [ . 1 . 3 1 ]    {1, 3}, {2, 5}, {4}
  21:    [ . . 1 . 4 ]    [ . 1 . 3 3 ]    {1, 3}, {2}, {4, 5}
  22:    [ . . 1 1 . ]    [ . 1 . . 4 ]    {1, 3, 4}, {2}, {5}
  23:    [ . . 1 1 1 ]    [ . 1 . . . ]    {1, 3, 4, 5}, {2}
  24:    [ . . 1 1 2 ]    [ . 1 . . 1 ]    {1, 3, 4}, {2, 5}
  25:    [ . . 1 2 . ]    [ . 1 . 1 4 ]    {1, 3}, {2, 4}, {5}
  26:    [ . . 1 2 1 ]    [ . 1 . 1 . ]    {1, 3, 5}, {2, 4}
  27:    [ . . 1 2 2 ]    [ . 1 . 1 1 ]    {1, 3}, {2, 4, 5}
  28:    [ . . 2 . . ]    [ . 1 1 3 4 ]    {1}, {2, 3}, {4}, {5}
  29:    [ . . 2 . 1 ]    [ . 1 1 3 . ]    {1, 5}, {2, 3}, {4}
  30:    [ . . 2 . 2 ]    [ . 1 1 3 1 ]    {1}, {2, 3, 5}, {4}
  31:    [ . . 2 . 4 ]    [ . 1 1 3 3 ]    {1}, {2, 3}, {4, 5}
  32:    [ . . 2 1 . ]    [ . 1 1 . 4 ]    {1, 4}, {2, 3}, {5}
  33:    [ . . 2 1 1 ]    [ . 1 1 . . ]    {1, 4, 5}, {2, 3}
  34:    [ . . 2 1 2 ]    [ . 1 1 . 1 ]    {1, 4}, {2, 3, 5}
  35:    [ . . 2 2 . ]    [ . 1 1 1 4 ]    {1}, {2, 3, 4}, {5}
  36:    [ . . 2 2 1 ]    [ . 1 1 1 . ]    {1, 5}, {2, 3, 4}
  37:    [ . . 2 2 2 ]    [ . 1 1 1 1 ]    {1}, {2, 3, 4, 5}
  38:    [ . 1 . . . ]    [ . . 2 3 4 ]    {1, 2}, {3}, {4}, {5}
  39:    [ . 1 . . 1 ]    [ . . 2 3 . ]    {1, 2, 5}, {3}, {4}
  40:    [ . 1 . . 3 ]    [ . . 2 3 2 ]    {1, 2}, {3, 5}, {4}
  41:    [ . 1 . . 4 ]    [ . . 2 3 3 ]    {1, 2}, {3}, {4, 5}
  42:    [ . 1 . 1 . ]    [ . . 2 . 4 ]    {1, 2, 4}, {3}, {5}
  43:    [ . 1 . 1 1 ]    [ . . 2 . . ]    {1, 2, 4, 5}, {3}
  44:    [ . 1 . 1 3 ]    [ . . 2 . 2 ]    {1, 2, 4}, {3, 5}
  45:    [ . 1 . 3 . ]    [ . . 2 2 4 ]    {1, 2}, {3, 4}, {5}
  46:    [ . 1 . 3 1 ]    [ . . 2 2 . ]    {1, 2, 5}, {3, 4}
  47:    [ . 1 . 3 3 ]    [ . . 2 2 2 ]    {1, 2}, {3, 4, 5}
  48:    [ . 1 1 . . ]    [ . . . 3 4 ]    {1, 2, 3}, {4}, {5}
  49:    [ . 1 1 . 1 ]    [ . . . 3 . ]    {1, 2, 3, 5}, {4}
  50:    [ . 1 1 . 4 ]    [ . . . 3 3 ]    {1, 2, 3}, {4, 5}
  51:    [ . 1 1 1 . ]    [ . . . . 4 ]    {1, 2, 3, 4}, {5}
  52:    [ . 1 1 1 1 ]    [ . . . . . ]    {1, 2, 3, 4, 5}
 ct=52
