// output of ./demo/graph/graph-parengray-demo.cc: // Description: //% Gray codes through valid parentheses strings arg 1: 6 == npp [Number of paren pairs] default=6 arg 2: 0 == jcyc [Whether only cycles are output] default=0 arg 3: 1 == maxnp [stop after maxnp paths (0: never stop)] default=1 arg 4: 2 == pcd [Condition on path (XOR-pattern): 0:none, 1:'101' or '11', 2: just '11'] default=2 Graph has 132 nodes, 660 edges. Path #0: 0: ......111111 == (((((()))))) ............ [ 0, 1, 2, 3, 4, 5, ] 1: .....1.11111 == ((((()())))) ^= .....11..... [ 0, 1, 2, 3, 4, 4, ] 2: .....11.1111 == (((()(())))) ^= ......11.... [ 0, 1, 2, 3, 3, 4, ] 3: .....111.111 == ((()((())))) ^= .......11... [ 0, 1, 2, 2, 3, 4, ] 4: .....1111.11 == (()(((())))) ^= ........11.. [ 0, 1, 1, 2, 3, 4, ] 5: .....11111.1 == ()((((())))) ^= .........11. [ 0, 0, 1, 2, 3, 4, ] 6: ....1.1111.1 == ()(((()()))) ^= ....11...... [ 0, 0, 1, 2, 3, 3, ] 7: ....1.111.11 == (()((()()))) ^= .........11. [ 0, 1, 1, 2, 3, 3, ] 8: ....1.11.111 == ((()(()()))) ^= ........11.. [ 0, 1, 2, 2, 3, 3, ] 9: ....1.1.1111 == (((()()()))) ^= .......11... [ 0, 1, 2, 3, 3, 3, ] 10: ....1..11111 == ((((())()))) ^= ......11.... [ 0, 1, 2, 3, 4, 3, ] 11: ...1...11111 == ((((()))())) ^= ...11....... [ 0, 1, 2, 3, 4, 2, ] 12: ...1..1.1111 == (((()())())) ^= ......11.... [ 0, 1, 2, 3, 3, 2, ] 13: ...1..11.111 == ((()(())())) ^= .......11... [ 0, 1, 2, 2, 3, 2, ] 14: ...1..111.11 == (()((())())) ^= ........11.. [ 0, 1, 1, 2, 3, 2, ] 15: ...1..1111.1 == ()(((())())) ^= .........11. [ 0, 0, 1, 2, 3, 2, ] 16: ...1.1.111.1 == ()((()()())) ^= .....11..... [ 0, 0, 1, 2, 2, 2, ] 17: ....11.111.1 == ()((()(()))) ^= ...11....... [ 0, 0, 1, 2, 2, 3, ] 18: ....11.11.11 == (()(()(()))) ^= .........11. [ 0, 1, 1, 2, 2, 3, ] 19: ....11.1.111 == ((()()(()))) ^= ........11.. [ 0, 1, 2, 2, 2, 3, ] 20: ....11..1111 == (((())(()))) ^= .......11... [ 0, 1, 2, 3, 2, 3, ] 21: ...1.1..1111 == (((())()())) ^= ...11....... [ 0, 1, 2, 3, 2, 2, ] 22: ...1.1.1.111 == ((()()()())) ^= .......11... [ 0, 1, 2, 2, 2, 2, ] 23: ...1.1.11.11 == (()(()()())) ^= ........11.. [ 0, 1, 1, 2, 2, 2, ] 24: ...1.11.1.11 == (()()(()())) ^= ......11.... [ 0, 1, 1, 1, 2, 2, ] 25: ....111.1.11 == (()()((()))) ^= ...11....... [ 0, 1, 1, 1, 2, 3, ] 26: ....111..111 == ((())((()))) ^= ........11.. [ 0, 1, 2, 1, 2, 3, ] 27: ...1.11..111 == ((())(()())) ^= ...11....... [ 0, 1, 2, 1, 2, 2, ] 28: ...11.1..111 == ((())()(())) ^= ....11...... [ 0, 1, 2, 1, 1, 2, ] 29: ...11..1.111 == ((()())(())) ^= ......11.... [ 0, 1, 2, 2, 1, 2, ] 30: ...11...1111 == (((()))(())) ^= .......11... [ 0, 1, 2, 3, 1, 2, ] 31: ..1.1...1111 == (((()))()()) ^= ..11........ [ 0, 1, 2, 3, 1, 1, ] 32: ..1..1..1111 == (((())())()) ^= ....11...... [ 0, 1, 2, 3, 2, 1, ] 33: ..1...1.1111 == (((()()))()) ^= .....11..... [ 0, 1, 2, 3, 3, 1, ] 34: ..1....11111 == ((((())))()) ^= ......11.... [ 0, 1, 2, 3, 4, 1, ] 35: .1.....11111 == ((((()))))() ^= .11......... [ 0, 1, 2, 3, 4, 0, ] 36: .1....1.1111 == (((()())))() ^= ......11.... [ 0, 1, 2, 3, 3, 0, ] 37: .1....11.111 == ((()(())))() ^= .......11... [ 0, 1, 2, 2, 3, 0, ] 38: ..1...11.111 == ((()(()))()) ^= .11......... [ 0, 1, 2, 2, 3, 1, ] 39: ..1...111.11 == (()((()))()) ^= ........11.. [ 0, 1, 1, 2, 3, 1, ] 40: ..1...1111.1 == ()(((()))()) ^= .........11. [ 0, 0, 1, 2, 3, 1, ] 41: ..1..1.111.1 == ()((()())()) ^= .....11..... [ 0, 0, 1, 2, 2, 1, ] 42: ..1..1.11.11 == (()(()())()) ^= .........11. [ 0, 1, 1, 2, 2, 1, ] 43: ..1..1.1.111 == ((()()())()) ^= ........11.. [ 0, 1, 2, 2, 2, 1, ] 44: ..1..11..111 == ((())(())()) ^= ......11.... [ 0, 1, 2, 1, 2, 1, ] 45: ..1..11.1.11 == (()()(())()) ^= ........11.. [ 0, 1, 1, 1, 2, 1, ] 46: ..1..11.11.1 == ()(()(())()) ^= .........11. [ 0, 0, 1, 1, 2, 1, ] 47: ...1.11.11.1 == ()(()(()())) ^= ..11........ [ 0, 0, 1, 1, 2, 2, ] 48: ....111.11.1 == ()(()((()))) ^= ...11....... [ 0, 0, 1, 1, 2, 3, ] 49: ....1111.1.1 == ()()(((()))) ^= .......11... [ 0, 0, 0, 1, 2, 3, ] 50: ....1111..11 == (())(((()))) ^= .........11. [ 0, 1, 0, 1, 2, 3, ] 51: ...1.111..11 == (())((()())) ^= ...11....... [ 0, 1, 0, 1, 2, 2, ] 52: ...1.111.1.1 == ()()((()())) ^= .........11. [ 0, 0, 0, 1, 2, 2, ] 53: ...11.11.1.1 == ()()(()(())) ^= ....11...... [ 0, 0, 0, 1, 1, 2, ] 54: ...11.1.11.1 == ()(()()(())) ^= .......11... [ 0, 0, 1, 1, 1, 2, ] 55: ...11..111.1 == ()((())(())) ^= ......11.... [ 0, 0, 1, 2, 1, 2, ] 56: ...11..11.11 == (()(())(())) ^= .........11. [ 0, 1, 1, 2, 1, 2, ] 57: ...11.1.1.11 == (()()()(())) ^= ......11.... [ 0, 1, 1, 1, 1, 2, ] 58: ...11.11..11 == (())(()(())) ^= .......11... [ 0, 1, 0, 1, 1, 2, ] 59: ...111.1..11 == (())()((())) ^= .....11..... [ 0, 1, 0, 0, 1, 2, ] 60: ...111..1.11 == (()())((())) ^= .......11... [ 0, 1, 1, 0, 1, 2, ] 61: ...111...111 == ((()))((())) ^= ........11.. [ 0, 1, 2, 0, 1, 2, ] 62: ..1.11...111 == ((()))(()()) ^= ..11........ [ 0, 1, 2, 0, 1, 1, ] 63: ..1.1.1..111 == ((())()()()) ^= .....11..... [ 0, 1, 2, 1, 1, 1, ] 64: ..1.1..1.111 == ((()())()()) ^= ......11.... [ 0, 1, 2, 2, 1, 1, ] 65: ..1.1..11.11 == (()(())()()) ^= ........11.. [ 0, 1, 1, 2, 1, 1, ] 66: ..1.1..111.1 == ()((())()()) ^= .........11. [ 0, 0, 1, 2, 1, 1, ] 67: ..1.1.1.11.1 == ()(()()()()) ^= ......11.... [ 0, 0, 1, 1, 1, 1, ] 68: ..1.1.1.1.11 == (()()()()()) ^= .........11. [ 0, 1, 1, 1, 1, 1, ] 69: ..1.1.11..11 == (())(()()()) ^= .......11... [ 0, 1, 0, 1, 1, 1, ] 70: ..1..111..11 == (())((())()) ^= ....11...... [ 0, 1, 0, 1, 2, 1, ] 71: ..1..111.1.1 == ()()((())()) ^= .........11. [ 0, 0, 0, 1, 2, 1, ] 72: ..1.1.11.1.1 == ()()(()()()) ^= ....11...... [ 0, 0, 0, 1, 1, 1, ] 73: ..1.11.1.1.1 == ()()()(()()) ^= .....11..... [ 0, 0, 0, 0, 1, 1, ] 74: ...111.1.1.1 == ()()()((())) ^= ..11........ [ 0, 0, 0, 0, 1, 2, ] 75: ...111..11.1 == ()(())((())) ^= .......11... [ 0, 0, 1, 0, 1, 2, ] 76: ..1.11..11.1 == ()(())(()()) ^= ..11........ [ 0, 0, 1, 0, 1, 1, ] 77: ..1.11..1.11 == (()())(()()) ^= .........11. [ 0, 1, 1, 0, 1, 1, ] 78: ..1.11.1..11 == (())()(()()) ^= .......11... [ 0, 1, 0, 0, 1, 1, ] 79: ..11.1.1..11 == (())()()(()) ^= ...11....... [ 0, 1, 0, 0, 0, 1, ] 80: ..11..11..11 == (())(())(()) ^= .....11..... [ 0, 1, 0, 1, 0, 1, ] 81: ..11..1.1.11 == (()()())(()) ^= .......11... [ 0, 1, 1, 1, 0, 1, ] 82: ..11...11.11 == (()(()))(()) ^= ......11.... [ 0, 1, 1, 2, 0, 1, ] 83: ..11...1.111 == ((()()))(()) ^= ........11.. [ 0, 1, 2, 2, 0, 1, ] 84: ..11....1111 == (((())))(()) ^= .......11... [ 0, 1, 2, 3, 0, 1, ] 85: .1.1....1111 == (((())))()() ^= .11......... [ 0, 1, 2, 3, 0, 0, ] 86: .1..1...1111 == (((()))())() ^= ...11....... [ 0, 1, 2, 3, 1, 0, ] 87: .1...1..1111 == (((())()))() ^= ....11...... [ 0, 1, 2, 3, 2, 0, ] 88: .1...1.1.111 == ((()()()))() ^= .......11... [ 0, 1, 2, 2, 2, 0, ] 89: .1...1.11.11 == (()(()()))() ^= ........11.. [ 0, 1, 1, 2, 2, 0, ] 90: .1....111.11 == (()((())))() ^= .....11..... [ 0, 1, 1, 2, 3, 0, ] 91: .1....1111.1 == ()(((())))() ^= .........11. [ 0, 0, 1, 2, 3, 0, ] 92: .1...1.111.1 == ()((()()))() ^= .....11..... [ 0, 0, 1, 2, 2, 0, ] 93: .1...11.11.1 == ()(()(()))() ^= ......11.... [ 0, 0, 1, 1, 2, 0, ] 94: .1...11.1.11 == (()()(()))() ^= .........11. [ 0, 1, 1, 1, 2, 0, ] 95: .1...11..111 == ((())(()))() ^= ........11.. [ 0, 1, 2, 1, 2, 0, ] 96: .1..1.1..111 == ((())()())() ^= ....11...... [ 0, 1, 2, 1, 1, 0, ] 97: .1..1..1.111 == ((()())())() ^= ......11.... [ 0, 1, 2, 2, 1, 0, ] 98: .1..1..11.11 == (()(())())() ^= ........11.. [ 0, 1, 1, 2, 1, 0, ] 99: .1..1..111.1 == ()((())())() ^= .........11. [ 0, 0, 1, 2, 1, 0, ] 100: .1..1.1.11.1 == ()(()()())() ^= ......11.... [ 0, 0, 1, 1, 1, 0, ] 101: .1..1.1.1.11 == (()()()())() ^= .........11. [ 0, 1, 1, 1, 1, 0, ] 102: .1..1.11..11 == (())(()())() ^= .......11... [ 0, 1, 0, 1, 1, 0, ] 103: .1...111..11 == (())((()))() ^= ....11...... [ 0, 1, 0, 1, 2, 0, ] 104: .1...111.1.1 == ()()((()))() ^= .........11. [ 0, 0, 0, 1, 2, 0, ] 105: .1..1.11.1.1 == ()()(()())() ^= ....11...... [ 0, 0, 0, 1, 1, 0, ] 106: .1..11.1.1.1 == ()()()(())() ^= .....11..... [ 0, 0, 0, 0, 1, 0, ] 107: .1..11..11.1 == ()(())(())() ^= .......11... [ 0, 0, 1, 0, 1, 0, ] 108: .1..11..1.11 == (()())(())() ^= .........11. [ 0, 1, 1, 0, 1, 0, ] 109: .1..11...111 == ((()))(())() ^= ........11.. [ 0, 1, 2, 0, 1, 0, ] 110: .1.1.1...111 == ((()))()()() ^= ...11....... [ 0, 1, 2, 0, 0, 0, ] 111: ..11.1...111 == ((()))()(()) ^= .11......... [ 0, 1, 2, 0, 0, 1, ] 112: ..11..1..111 == ((())())(()) ^= .....11..... [ 0, 1, 2, 1, 0, 1, ] 113: .1.1..1..111 == ((())())()() ^= .11......... [ 0, 1, 2, 1, 0, 0, ] 114: .1.1...1.111 == ((()()))()() ^= ......11.... [ 0, 1, 2, 2, 0, 0, ] 115: .1.1...11.11 == (()(()))()() ^= ........11.. [ 0, 1, 1, 2, 0, 0, ] 116: .1.1...111.1 == ()((()))()() ^= .........11. [ 0, 0, 1, 2, 0, 0, ] 117: ..11...111.1 == ()((()))(()) ^= .11......... [ 0, 0, 1, 2, 0, 1, ] 118: ..11..1.11.1 == ()(()())(()) ^= ......11.... [ 0, 0, 1, 1, 0, 1, ] 119: ..11..11.1.1 == ()()(())(()) ^= .......11... [ 0, 0, 0, 1, 0, 1, ] 120: ..11.1.1.1.1 == ()()()()(()) ^= .....11..... [ 0, 0, 0, 0, 0, 1, ] 121: ..11.1..11.1 == ()(())()(()) ^= .......11... [ 0, 0, 1, 0, 0, 1, ] 122: ..11.1..1.11 == (()())()(()) ^= .........11. [ 0, 1, 1, 0, 0, 1, ] 123: .1.1.1..1.11 == (()())()()() ^= .11......... [ 0, 1, 1, 0, 0, 0, ] 124: .1.1..1.1.11 == (()()())()() ^= .....11..... [ 0, 1, 1, 1, 0, 0, ] 125: .1.1..1.11.1 == ()(()())()() ^= .........11. [ 0, 0, 1, 1, 0, 0, ] 126: .1.1.1..11.1 == ()(())()()() ^= .....11..... [ 0, 0, 1, 0, 0, 0, ] 127: .1.1.1.1.1.1 == ()()()()()() ^= .......11... [ 0, 0, 0, 0, 0, 0, ] 128: .1.1..11.1.1 == ()()(())()() ^= .....11..... [ 0, 0, 0, 1, 0, 0, ] 129: .1.1..11..11 == (())(())()() ^= .........11. [ 0, 1, 0, 1, 0, 0, ] 130: .1.1.1.1..11 == (())()()()() ^= .....11..... [ 0, 1, 0, 0, 0, 0, ] 131: .1..11.1..11 == (())()(())() ^= ...11....... [ 0, 1, 0, 0, 1, 0, ] % npp=6 npt=1