// output of ./demo/comb/perm-gray-rot1-demo.cc: // Description: //% Generate all permutations in minimal-change order such that //% in the last permutations the first e elements are cyclically //% rotated by one where e is the greatest even number <=n. arg 1: 5 == n [Permutations of n elements.] default=5 0: [ . 1 2 3 4 ] (0, 0) [ . . . . ] 4 -1 [ . 1 2 3 4 ] 1: [ 1 . 2 3 4 ] (0, 1) [ 1 . . . ] 0 +1 [ 1 . 2 3 4 ] 2: [ 2 . 1 3 4 ] (0, 2) [ 1 1 . . ] 1 +1 [ 1 2 . 3 4 ] 3: [ . 2 1 3 4 ] (0, 1) [ . 1 . . ] 0 -1 [ . 2 1 3 4 ] 4: [ 1 2 . 3 4 ] (0, 2) [ . 2 . . ] 1 +1 [ 2 . 1 3 4 ] 5: [ 2 1 . 3 4 ] (0, 1) [ 1 2 . . ] 0 +1 [ 2 1 . 3 4 ] 6: [ 2 1 . 4 3 ] (3, 4) [ 1 2 1 . ] 2 +1 [ 2 1 . 4 3 ] 7: [ 1 2 . 4 3 ] (0, 1) [ . 2 1 . ] 0 -1 [ 2 . 1 4 3 ] 8: [ . 2 1 4 3 ] (0, 2) [ . 1 1 . ] 1 -1 [ . 2 1 4 3 ] 9: [ 2 . 1 4 3 ] (0, 1) [ 1 1 1 . ] 0 +1 [ 1 2 . 4 3 ] 10: [ 1 . 2 4 3 ] (0, 2) [ 1 . 1 . ] 1 -1 [ 1 . 2 4 3 ] 11: [ . 1 2 4 3 ] (0, 1) [ . . 1 . ] 0 -1 [ . 1 2 4 3 ] 12: [ . 1 3 4 2 ] (2, 4) [ . . 2 . ] 2 +1 [ . 1 4 2 3 ] 13: [ 1 . 3 4 2 ] (0, 1) [ 1 . 2 . ] 0 +1 [ 1 . 4 2 3 ] 14: [ 3 . 1 4 2 ] (0, 2) [ 1 1 2 . ] 1 +1 [ 1 2 4 . 3 ] 15: [ . 3 1 4 2 ] (0, 1) [ . 1 2 . ] 0 -1 [ . 2 4 1 3 ] 16: [ 1 3 . 4 2 ] (0, 2) [ . 2 2 . ] 1 +1 [ 2 . 4 1 3 ] 17: [ 3 1 . 4 2 ] (0, 1) [ 1 2 2 . ] 0 +1 [ 2 1 4 . 3 ] 18: [ 3 2 . 4 1 ] (1, 4) [ 1 2 3 . ] 2 +1 [ 2 4 1 . 3 ] 19: [ 2 3 . 4 1 ] (0, 1) [ . 2 3 . ] 0 -1 [ 2 4 . 1 3 ] 20: [ . 3 2 4 1 ] (0, 2) [ . 1 3 . ] 1 -1 [ . 4 2 1 3 ] 21: [ 3 . 2 4 1 ] (0, 1) [ 1 1 3 . ] 0 +1 [ 1 4 2 . 3 ] 22: [ 2 . 3 4 1 ] (0, 2) [ 1 . 3 . ] 1 -1 [ 1 4 . 2 3 ] 23: [ . 2 3 4 1 ] (0, 1) [ . . 3 . ] 0 -1 [ . 4 1 2 3 ] 24: [ 1 2 3 4 . ] (0, 4) [ . . 4 . ] 2 +1 [ 4 . 1 2 3 ] 25: [ 2 1 3 4 . ] (0, 1) [ 1 . 4 . ] 0 +1 [ 4 1 . 2 3 ] 26: [ 3 1 2 4 . ] (0, 2) [ 1 1 4 . ] 1 +1 [ 4 1 2 . 3 ] 27: [ 1 3 2 4 . ] (0, 1) [ . 1 4 . ] 0 -1 [ 4 . 2 1 3 ] 28: [ 2 3 1 4 . ] (0, 2) [ . 2 4 . ] 1 +1 [ 4 2 . 1 3 ] 29: [ 3 2 1 4 . ] (0, 1) [ 1 2 4 . ] 0 +1 [ 4 2 1 . 3 ] 30: [ 4 2 1 3 . ] (0, 3) [ 1 2 4 1 ] 3 +1 [ 4 2 1 3 . ] 31: [ 2 4 1 3 . ] (0, 1) [ . 2 4 1 ] 0 -1 [ 4 2 . 3 1 ] 32: [ 1 4 2 3 . ] (0, 2) [ . 1 4 1 ] 1 -1 [ 4 . 2 3 1 ] 33: [ 4 1 2 3 . ] (0, 1) [ 1 1 4 1 ] 0 +1 [ 4 1 2 3 . ] 34: [ 2 1 4 3 . ] (0, 2) [ 1 . 4 1 ] 1 -1 [ 4 1 . 3 2 ] 35: [ 1 2 4 3 . ] (0, 1) [ . . 4 1 ] 0 -1 [ 4 . 1 3 2 ] 36: [ . 2 4 3 1 ] (0, 4) [ . . 3 1 ] 2 -1 [ . 4 1 3 2 ] 37: [ 2 . 4 3 1 ] (0, 1) [ 1 . 3 1 ] 0 +1 [ 1 4 . 3 2 ] 38: [ 4 . 2 3 1 ] (0, 2) [ 1 1 3 1 ] 1 +1 [ 1 4 2 3 . ] 39: [ . 4 2 3 1 ] (0, 1) [ . 1 3 1 ] 0 -1 [ . 4 2 3 1 ] 40: [ 2 4 . 3 1 ] (0, 2) [ . 2 3 1 ] 1 +1 [ 2 4 . 3 1 ] 41: [ 4 2 . 3 1 ] (0, 1) [ 1 2 3 1 ] 0 +1 [ 2 4 1 3 . ] 42: [ 4 1 . 3 2 ] (1, 4) [ 1 2 2 1 ] 2 -1 [ 2 1 4 3 . ] 43: [ 1 4 . 3 2 ] (0, 1) [ . 2 2 1 ] 0 -1 [ 2 . 4 3 1 ] 44: [ . 4 1 3 2 ] (0, 2) [ . 1 2 1 ] 1 -1 [ . 2 4 3 1 ] 45: [ 4 . 1 3 2 ] (0, 1) [ 1 1 2 1 ] 0 +1 [ 1 2 4 3 . ] 46: [ 1 . 4 3 2 ] (0, 2) [ 1 . 2 1 ] 1 -1 [ 1 . 4 3 2 ] 47: [ . 1 4 3 2 ] (0, 1) [ . . 2 1 ] 0 -1 [ . 1 4 3 2 ] 48: [ . 1 4 2 3 ] (3, 4) [ . . 1 1 ] 2 -1 [ . 1 3 4 2 ] 49: [ 1 . 4 2 3 ] (0, 1) [ 1 . 1 1 ] 0 +1 [ 1 . 3 4 2 ] 50: [ 4 . 1 2 3 ] (0, 2) [ 1 1 1 1 ] 1 +1 [ 1 2 3 4 . ] 51: [ . 4 1 2 3 ] (0, 1) [ . 1 1 1 ] 0 -1 [ . 2 3 4 1 ] 52: [ 1 4 . 2 3 ] (0, 2) [ . 2 1 1 ] 1 +1 [ 2 . 3 4 1 ] 53: [ 4 1 . 2 3 ] (0, 1) [ 1 2 1 1 ] 0 +1 [ 2 1 3 4 . ] 54: [ 3 1 . 2 4 ] (0, 4) [ 1 2 . 1 ] 2 -1 [ 2 1 3 . 4 ] 55: [ 1 3 . 2 4 ] (0, 1) [ . 2 . 1 ] 0 -1 [ 2 . 3 1 4 ] 56: [ . 3 1 2 4 ] (0, 2) [ . 1 . 1 ] 1 -1 [ . 2 3 1 4 ] 57: [ 3 . 1 2 4 ] (0, 1) [ 1 1 . 1 ] 0 +1 [ 1 2 3 . 4 ] 58: [ 1 . 3 2 4 ] (0, 2) [ 1 . . 1 ] 1 -1 [ 1 . 3 2 4 ] 59: [ . 1 3 2 4 ] (0, 1) [ . . . 1 ] 0 -1 [ . 1 3 2 4 ] 60: [ . 2 3 1 4 ] (1, 3) [ . . . 2 ] 3 +1 [ . 3 1 2 4 ] 61: [ 2 . 3 1 4 ] (0, 1) [ 1 . . 2 ] 0 +1 [ 1 3 . 2 4 ] 62: [ 3 . 2 1 4 ] (0, 2) [ 1 1 . 2 ] 1 +1 [ 1 3 2 . 4 ] 63: [ . 3 2 1 4 ] (0, 1) [ . 1 . 2 ] 0 -1 [ . 3 2 1 4 ] 64: [ 2 3 . 1 4 ] (0, 2) [ . 2 . 2 ] 1 +1 [ 2 3 . 1 4 ] 65: [ 3 2 . 1 4 ] (0, 1) [ 1 2 . 2 ] 0 +1 [ 2 3 1 . 4 ] 66: [ 4 2 . 1 3 ] (0, 4) [ 1 2 1 2 ] 2 +1 [ 2 3 1 4 . ] 67: [ 2 4 . 1 3 ] (0, 1) [ . 2 1 2 ] 0 -1 [ 2 3 . 4 1 ] 68: [ . 4 2 1 3 ] (0, 2) [ . 1 1 2 ] 1 -1 [ . 3 2 4 1 ] 69: [ 4 . 2 1 3 ] (0, 1) [ 1 1 1 2 ] 0 +1 [ 1 3 2 4 . ] 70: [ 2 . 4 1 3 ] (0, 2) [ 1 . 1 2 ] 1 -1 [ 1 3 . 4 2 ] 71: [ . 2 4 1 3 ] (0, 1) [ . . 1 2 ] 0 -1 [ . 3 1 4 2 ] 72: [ . 3 4 1 2 ] (1, 4) [ . . 2 2 ] 2 +1 [ . 3 4 1 2 ] 73: [ 3 . 4 1 2 ] (0, 1) [ 1 . 2 2 ] 0 +1 [ 1 3 4 . 2 ] 74: [ 4 . 3 1 2 ] (0, 2) [ 1 1 2 2 ] 1 +1 [ 1 3 4 2 . ] 75: [ . 4 3 1 2 ] (0, 1) [ . 1 2 2 ] 0 -1 [ . 3 4 2 1 ] 76: [ 3 4 . 1 2 ] (0, 2) [ . 2 2 2 ] 1 +1 [ 2 3 4 . 1 ] 77: [ 4 3 . 1 2 ] (0, 1) [ 1 2 2 2 ] 0 +1 [ 2 3 4 1 . ] 78: [ 4 3 . 2 1 ] (3, 4) [ 1 2 3 2 ] 2 +1 [ 2 4 3 1 . ] 79: [ 3 4 . 2 1 ] (0, 1) [ . 2 3 2 ] 0 -1 [ 2 4 3 . 1 ] 80: [ . 4 3 2 1 ] (0, 2) [ . 1 3 2 ] 1 -1 [ . 4 3 2 1 ] 81: [ 4 . 3 2 1 ] (0, 1) [ 1 1 3 2 ] 0 +1 [ 1 4 3 2 . ] 82: [ 3 . 4 2 1 ] (0, 2) [ 1 . 3 2 ] 1 -1 [ 1 4 3 . 2 ] 83: [ . 3 4 2 1 ] (0, 1) [ . . 3 2 ] 0 -1 [ . 4 3 1 2 ] 84: [ 1 3 4 2 . ] (0, 4) [ . . 4 2 ] 2 +1 [ 4 . 3 1 2 ] 85: [ 3 1 4 2 . ] (0, 1) [ 1 . 4 2 ] 0 +1 [ 4 1 3 . 2 ] 86: [ 4 1 3 2 . ] (0, 2) [ 1 1 4 2 ] 1 +1 [ 4 1 3 2 . ] 87: [ 1 4 3 2 . ] (0, 1) [ . 1 4 2 ] 0 -1 [ 4 . 3 2 1 ] 88: [ 3 4 1 2 . ] (0, 2) [ . 2 4 2 ] 1 +1 [ 4 2 3 . 1 ] 89: [ 4 3 1 2 . ] (0, 1) [ 1 2 4 2 ] 0 +1 [ 4 2 3 1 . ] 90: [ 4 3 2 1 . ] (2, 3) [ 1 2 4 3 ] 3 +1 [ 4 3 2 1 . ] 91: [ 3 4 2 1 . ] (0, 1) [ . 2 4 3 ] 0 -1 [ 4 3 2 . 1 ] 92: [ 2 4 3 1 . ] (0, 2) [ . 1 4 3 ] 1 -1 [ 4 3 . 2 1 ] 93: [ 4 2 3 1 . ] (0, 1) [ 1 1 4 3 ] 0 +1 [ 4 3 1 2 . ] 94: [ 3 2 4 1 . ] (0, 2) [ 1 . 4 3 ] 1 -1 [ 4 3 1 . 2 ] 95: [ 2 3 4 1 . ] (0, 1) [ . . 4 3 ] 0 -1 [ 4 3 . 1 2 ] 96: [ 2 3 4 . 1 ] (3, 4) [ . . 3 3 ] 2 -1 [ 3 4 . 1 2 ] 97: [ 3 2 4 . 1 ] (0, 1) [ 1 . 3 3 ] 0 +1 [ 3 4 1 . 2 ] 98: [ 4 2 3 . 1 ] (0, 2) [ 1 1 3 3 ] 1 +1 [ 3 4 1 2 . ] 99: [ 2 4 3 . 1 ] (0, 1) [ . 1 3 3 ] 0 -1 [ 3 4 . 2 1 ] 100: [ 3 4 2 . 1 ] (0, 2) [ . 2 3 3 ] 1 +1 [ 3 4 2 . 1 ] 101: [ 4 3 2 . 1 ] (0, 1) [ 1 2 3 3 ] 0 +1 [ 3 4 2 1 . ] 102: [ 4 3 1 . 2 ] (2, 4) [ 1 2 2 3 ] 2 -1 [ 3 2 4 1 . ] 103: [ 3 4 1 . 2 ] (0, 1) [ . 2 2 3 ] 0 -1 [ 3 2 4 . 1 ] 104: [ 1 4 3 . 2 ] (0, 2) [ . 1 2 3 ] 1 -1 [ 3 . 4 2 1 ] 105: [ 4 1 3 . 2 ] (0, 1) [ 1 1 2 3 ] 0 +1 [ 3 1 4 2 . ] 106: [ 3 1 4 . 2 ] (0, 2) [ 1 . 2 3 ] 1 -1 [ 3 1 4 . 2 ] 107: [ 1 3 4 . 2 ] (0, 1) [ . . 2 3 ] 0 -1 [ 3 . 4 1 2 ] 108: [ 1 2 4 . 3 ] (1, 4) [ . . 1 3 ] 2 -1 [ 3 . 1 4 2 ] 109: [ 2 1 4 . 3 ] (0, 1) [ 1 . 1 3 ] 0 +1 [ 3 1 . 4 2 ] 110: [ 4 1 2 . 3 ] (0, 2) [ 1 1 1 3 ] 1 +1 [ 3 1 2 4 . ] 111: [ 1 4 2 . 3 ] (0, 1) [ . 1 1 3 ] 0 -1 [ 3 . 2 4 1 ] 112: [ 2 4 1 . 3 ] (0, 2) [ . 2 1 3 ] 1 +1 [ 3 2 . 4 1 ] 113: [ 4 2 1 . 3 ] (0, 1) [ 1 2 1 3 ] 0 +1 [ 3 2 1 4 . ] 114: [ 3 2 1 . 4 ] (0, 4) [ 1 2 . 3 ] 2 -1 [ 3 2 1 . 4 ] 115: [ 2 3 1 . 4 ] (0, 1) [ . 2 . 3 ] 0 -1 [ 3 2 . 1 4 ] 116: [ 1 3 2 . 4 ] (0, 2) [ . 1 . 3 ] 1 -1 [ 3 . 2 1 4 ] 117: [ 3 1 2 . 4 ] (0, 1) [ 1 1 . 3 ] 0 +1 [ 3 1 2 . 4 ] 118: [ 2 1 3 . 4 ] (0, 2) [ 1 . . 3 ] 1 -1 [ 3 1 . 2 4 ] 119: [ 1 2 3 . 4 ] (0, 1) [ . . . 3 ] 0 -1 [ 3 . 1 2 4 ]