// output of ./demo/comb/perm-gray-lipski-demo.cc: // Description: //% Four Gray codes for permutations, CAT algorithm. arg 1: 5 == n [Number of elements to permute] default=5 arg 2: 1 == r [Ordering: 0 ==> Lipski(9) == Heap, 1 ==> Lipski(16), 2 ==> Lipski(10), 3 ==> order not in Lipski's paper] default=1 1: [ . 1 2 3 4 ] (0, 0) [ . . . . ] [ . 1 2 3 4 ] 2: [ 1 . 2 3 4 ] (1, 0) [ 1 . . . ] [ 1 . 2 3 4 ] 3: [ 2 . 1 3 4 ] (2, 0) [ . 1 . . ] [ 1 2 . 3 4 ] 4: [ . 2 1 3 4 ] (1, 0) [ 1 1 . . ] [ . 2 1 3 4 ] 5: [ 1 2 . 3 4 ] (2, 0) [ . 2 . . ] [ 2 . 1 3 4 ] 6: [ 2 1 . 3 4 ] (1, 0) [ 1 2 . . ] [ 2 1 . 3 4 ] 7: [ 2 1 3 . 4 ] (3, 2) [ . . 1 . ] [ 3 1 . 2 4 ] 8: [ 1 2 3 . 4 ] (1, 0) [ 1 . 1 . ] [ 3 . 1 2 4 ] 9: [ 3 2 1 . 4 ] (2, 0) [ . 1 1 . ] [ 3 2 1 . 4 ] 10: [ 2 3 1 . 4 ] (1, 0) [ 1 1 1 . ] [ 3 2 . 1 4 ] 11: [ 1 3 2 . 4 ] (2, 0) [ . 2 1 . ] [ 3 . 2 1 4 ] 12: [ 3 1 2 . 4 ] (1, 0) [ 1 2 1 . ] [ 3 1 2 . 4 ] 13: [ 3 . 2 1 4 ] (3, 1) [ . . 2 . ] [ 1 3 2 . 4 ] 14: [ . 3 2 1 4 ] (1, 0) [ 1 . 2 . ] [ . 3 2 1 4 ] 15: [ 2 3 . 1 4 ] (2, 0) [ . 1 2 . ] [ 2 3 . 1 4 ] 16: [ 3 2 . 1 4 ] (1, 0) [ 1 1 2 . ] [ 2 3 1 . 4 ] 17: [ . 2 3 1 4 ] (2, 0) [ . 2 2 . ] [ . 3 1 2 4 ] 18: [ 2 . 3 1 4 ] (1, 0) [ 1 2 2 . ] [ 1 3 . 2 4 ] 19: [ 1 . 3 2 4 ] (3, 0) [ . . 3 . ] [ 1 . 3 2 4 ] 20: [ . 1 3 2 4 ] (1, 0) [ 1 . 3 . ] [ . 1 3 2 4 ] 21: [ 3 1 . 2 4 ] (2, 0) [ . 1 3 . ] [ 2 1 3 . 4 ] 22: [ 1 3 . 2 4 ] (1, 0) [ 1 1 3 . ] [ 2 . 3 1 4 ] 23: [ . 3 1 2 4 ] (2, 0) [ . 2 3 . ] [ . 2 3 1 4 ] 24: [ 3 . 1 2 4 ] (1, 0) [ 1 2 3 . ] [ 1 2 3 . 4 ] 25: [ 4 . 1 2 3 ] (4, 0) [ . . . 1 ] [ 1 2 3 4 . ] 26: [ . 4 1 2 3 ] (1, 0) [ 1 . . 1 ] [ . 2 3 4 1 ] 27: [ 1 4 . 2 3 ] (2, 0) [ . 1 . 1 ] [ 2 . 3 4 1 ] 28: [ 4 1 . 2 3 ] (1, 0) [ 1 1 . 1 ] [ 2 1 3 4 . ] 29: [ . 1 4 2 3 ] (2, 0) [ . 2 . 1 ] [ . 1 3 4 2 ] 30: [ 1 . 4 2 3 ] (1, 0) [ 1 2 . 1 ] [ 1 . 3 4 2 ] 31: [ 1 . 2 4 3 ] (3, 2) [ . . 1 1 ] [ 1 . 2 4 3 ] 32: [ . 1 2 4 3 ] (1, 0) [ 1 . 1 1 ] [ . 1 2 4 3 ] 33: [ 2 1 . 4 3 ] (2, 0) [ . 1 1 1 ] [ 2 1 . 4 3 ] 34: [ 1 2 . 4 3 ] (1, 0) [ 1 1 1 1 ] [ 2 . 1 4 3 ] 35: [ . 2 1 4 3 ] (2, 0) [ . 2 1 1 ] [ . 2 1 4 3 ] 36: [ 2 . 1 4 3 ] (1, 0) [ 1 2 1 1 ] [ 1 2 . 4 3 ] 37: [ 2 4 1 . 3 ] (3, 1) [ . . 2 1 ] [ 3 2 . 4 1 ] 38: [ 4 2 1 . 3 ] (1, 0) [ 1 . 2 1 ] [ 3 2 1 4 . ] 39: [ 1 2 4 . 3 ] (2, 0) [ . 1 2 1 ] [ 3 . 1 4 2 ] 40: [ 2 1 4 . 3 ] (1, 0) [ 1 1 2 1 ] [ 3 1 . 4 2 ] 41: [ 4 1 2 . 3 ] (2, 0) [ . 2 2 1 ] [ 3 1 2 4 . ] 42: [ 1 4 2 . 3 ] (1, 0) [ 1 2 2 1 ] [ 3 . 2 4 1 ] 43: [ . 4 2 1 3 ] (3, 0) [ . . 3 1 ] [ . 3 2 4 1 ] 44: [ 4 . 2 1 3 ] (1, 0) [ 1 . 3 1 ] [ 1 3 2 4 . ] 45: [ 2 . 4 1 3 ] (2, 0) [ . 1 3 1 ] [ 1 3 . 4 2 ] 46: [ . 2 4 1 3 ] (1, 0) [ 1 1 3 1 ] [ . 3 1 4 2 ] 47: [ 4 2 . 1 3 ] (2, 0) [ . 2 3 1 ] [ 2 3 1 4 . ] 48: [ 2 4 . 1 3 ] (1, 0) [ 1 2 3 1 ] [ 2 3 . 4 1 ] 49: [ 3 4 . 1 2 ] (4, 0) [ . . . 2 ] [ 2 3 4 . 1 ] 50: [ 4 3 . 1 2 ] (1, 0) [ 1 . . 2 ] [ 2 3 4 1 . ] 51: [ . 3 4 1 2 ] (2, 0) [ . 1 . 2 ] [ . 3 4 1 2 ] 52: [ 3 . 4 1 2 ] (1, 0) [ 1 1 . 2 ] [ 1 3 4 . 2 ] 53: [ 4 . 3 1 2 ] (2, 0) [ . 2 . 2 ] [ 1 3 4 2 . ] 54: [ . 4 3 1 2 ] (1, 0) [ 1 2 . 2 ] [ . 3 4 2 1 ] 55: [ . 4 1 3 2 ] (3, 2) [ . . 1 2 ] [ . 2 4 3 1 ] 56: [ 4 . 1 3 2 ] (1, 0) [ 1 . 1 2 ] [ 1 2 4 3 . ] 57: [ 1 . 4 3 2 ] (2, 0) [ . 1 1 2 ] [ 1 . 4 3 2 ] 58: [ . 1 4 3 2 ] (1, 0) [ 1 1 1 2 ] [ . 1 4 3 2 ] 59: [ 4 1 . 3 2 ] (2, 0) [ . 2 1 2 ] [ 2 1 4 3 . ] 60: [ 1 4 . 3 2 ] (1, 0) [ 1 2 1 2 ] [ 2 . 4 3 1 ] 61: [ 1 3 . 4 2 ] (3, 1) [ . . 2 2 ] [ 2 . 4 1 3 ] 62: [ 3 1 . 4 2 ] (1, 0) [ 1 . 2 2 ] [ 2 1 4 . 3 ] 63: [ . 1 3 4 2 ] (2, 0) [ . 1 2 2 ] [ . 1 4 2 3 ] 64: [ 1 . 3 4 2 ] (1, 0) [ 1 1 2 2 ] [ 1 . 4 2 3 ] 65: [ 3 . 1 4 2 ] (2, 0) [ . 2 2 2 ] [ 1 2 4 . 3 ] 66: [ . 3 1 4 2 ] (1, 0) [ 1 2 2 2 ] [ . 2 4 1 3 ] 67: [ 4 3 1 . 2 ] (3, 0) [ . . 3 2 ] [ 3 2 4 1 . ] 68: [ 3 4 1 . 2 ] (1, 0) [ 1 . 3 2 ] [ 3 2 4 . 1 ] 69: [ 1 4 3 . 2 ] (2, 0) [ . 1 3 2 ] [ 3 . 4 2 1 ] 70: [ 4 1 3 . 2 ] (1, 0) [ 1 1 3 2 ] [ 3 1 4 2 . ] 71: [ 3 1 4 . 2 ] (2, 0) [ . 2 3 2 ] [ 3 1 4 . 2 ] 72: [ 1 3 4 . 2 ] (1, 0) [ 1 2 3 2 ] [ 3 . 4 1 2 ] 73: [ 2 3 4 . 1 ] (4, 0) [ . . . 3 ] [ 3 4 . 1 2 ] 74: [ 3 2 4 . 1 ] (1, 0) [ 1 . . 3 ] [ 3 4 1 . 2 ] 75: [ 4 2 3 . 1 ] (2, 0) [ . 1 . 3 ] [ 3 4 1 2 . ] 76: [ 2 4 3 . 1 ] (1, 0) [ 1 1 . 3 ] [ 3 4 . 2 1 ] 77: [ 3 4 2 . 1 ] (2, 0) [ . 2 . 3 ] [ 3 4 2 . 1 ] 78: [ 4 3 2 . 1 ] (1, 0) [ 1 2 . 3 ] [ 3 4 2 1 . ] 79: [ 4 3 . 2 1 ] (3, 2) [ . . 1 3 ] [ 2 4 3 1 . ] 80: [ 3 4 . 2 1 ] (1, 0) [ 1 . 1 3 ] [ 2 4 3 . 1 ] 81: [ . 4 3 2 1 ] (2, 0) [ . 1 1 3 ] [ . 4 3 2 1 ] 82: [ 4 . 3 2 1 ] (1, 0) [ 1 1 1 3 ] [ 1 4 3 2 . ] 83: [ 3 . 4 2 1 ] (2, 0) [ . 2 1 3 ] [ 1 4 3 . 2 ] 84: [ . 3 4 2 1 ] (1, 0) [ 1 2 1 3 ] [ . 4 3 1 2 ] 85: [ . 2 4 3 1 ] (3, 1) [ . . 2 3 ] [ . 4 1 3 2 ] 86: [ 2 . 4 3 1 ] (1, 0) [ 1 . 2 3 ] [ 1 4 . 3 2 ] 87: [ 4 . 2 3 1 ] (2, 0) [ . 1 2 3 ] [ 1 4 2 3 . ] 88: [ . 4 2 3 1 ] (1, 0) [ 1 1 2 3 ] [ . 4 2 3 1 ] 89: [ 2 4 . 3 1 ] (2, 0) [ . 2 2 3 ] [ 2 4 . 3 1 ] 90: [ 4 2 . 3 1 ] (1, 0) [ 1 2 2 3 ] [ 2 4 1 3 . ] 91: [ 3 2 . 4 1 ] (3, 0) [ . . 3 3 ] [ 2 4 1 . 3 ] 92: [ 2 3 . 4 1 ] (1, 0) [ 1 . 3 3 ] [ 2 4 . 1 3 ] 93: [ . 3 2 4 1 ] (2, 0) [ . 1 3 3 ] [ . 4 2 1 3 ] 94: [ 3 . 2 4 1 ] (1, 0) [ 1 1 3 3 ] [ 1 4 2 . 3 ] 95: [ 2 . 3 4 1 ] (2, 0) [ . 2 3 3 ] [ 1 4 . 2 3 ] 96: [ . 2 3 4 1 ] (1, 0) [ 1 2 3 3 ] [ . 4 1 2 3 ] 97: [ 1 2 3 4 . ] (4, 0) [ . . . 4 ] [ 4 . 1 2 3 ] 98: [ 2 1 3 4 . ] (1, 0) [ 1 . . 4 ] [ 4 1 . 2 3 ] 99: [ 3 1 2 4 . ] (2, 0) [ . 1 . 4 ] [ 4 1 2 . 3 ] 100: [ 1 3 2 4 . ] (1, 0) [ 1 1 . 4 ] [ 4 . 2 1 3 ] 101: [ 2 3 1 4 . ] (2, 0) [ . 2 . 4 ] [ 4 2 . 1 3 ] 102: [ 3 2 1 4 . ] (1, 0) [ 1 2 . 4 ] [ 4 2 1 . 3 ] 103: [ 3 2 4 1 . ] (3, 2) [ . . 1 4 ] [ 4 3 1 . 2 ] 104: [ 2 3 4 1 . ] (1, 0) [ 1 . 1 4 ] [ 4 3 . 1 2 ] 105: [ 4 3 2 1 . ] (2, 0) [ . 1 1 4 ] [ 4 3 2 1 . ] 106: [ 3 4 2 1 . ] (1, 0) [ 1 1 1 4 ] [ 4 3 2 . 1 ] 107: [ 2 4 3 1 . ] (2, 0) [ . 2 1 4 ] [ 4 3 . 2 1 ] 108: [ 4 2 3 1 . ] (1, 0) [ 1 2 1 4 ] [ 4 3 1 2 . ] 109: [ 4 1 3 2 . ] (3, 1) [ . . 2 4 ] [ 4 1 3 2 . ] 110: [ 1 4 3 2 . ] (1, 0) [ 1 . 2 4 ] [ 4 . 3 2 1 ] 111: [ 3 4 1 2 . ] (2, 0) [ . 1 2 4 ] [ 4 2 3 . 1 ] 112: [ 4 3 1 2 . ] (1, 0) [ 1 1 2 4 ] [ 4 2 3 1 . ] 113: [ 1 3 4 2 . ] (2, 0) [ . 2 2 4 ] [ 4 . 3 1 2 ] 114: [ 3 1 4 2 . ] (1, 0) [ 1 2 2 4 ] [ 4 1 3 . 2 ] 115: [ 2 1 4 3 . ] (3, 0) [ . . 3 4 ] [ 4 1 . 3 2 ] 116: [ 1 2 4 3 . ] (1, 0) [ 1 . 3 4 ] [ 4 . 1 3 2 ] 117: [ 4 2 1 3 . ] (2, 0) [ . 1 3 4 ] [ 4 2 1 3 . ] 118: [ 2 4 1 3 . ] (1, 0) [ 1 1 3 4 ] [ 4 2 . 3 1 ] 119: [ 1 4 2 3 . ] (2, 0) [ . 2 3 4 ] [ 4 . 2 3 1 ] 120: [ 4 1 2 3 . ] (1, 0) [ 1 2 3 4 ] [ 4 1 2 3 . ] ct=120