***************************************************************************** * www.FindStat.org - The Combinatorial Statistic Finder * * * * Copyright (C) 2019 The FindStatCrew * * * * This information is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * ***************************************************************************** ----------------------------------------------------------------------------- Statistic identifier: St000885 ----------------------------------------------------------------------------- Collection: Binary words ----------------------------------------------------------------------------- Description: The number of critical steps in the Catalan decomposition of a binary word. Every binary word can be written in a unique way as $(\mathcal D 0)^\ell \mathcal D (1 \mathcal D)^m$, where $\mathcal D$ is the set of Dyck words. This is the Catalan factorisation, see [1, sec.9.1.2]. This statistic records the number of critical steps $\ell + m$ in the Catalan factorisation. The distribution of this statistic on words of length $n$ is $$ (n+1)q^n+\sum_{\substack{k=0\\\text{k even}}}^{n-2} \frac{(n-1-k)^2}{1+k/2}\binom{n}{k/2}q^{n-2-k}. $$ ----------------------------------------------------------------------------- References: [1] Lothaire, M. Applied combinatorics on words [[MathSciNet:2165687]] ----------------------------------------------------------------------------- Code: def statistic(w): c = catalan_factorization(w) return len(c[0]) + len(c[2]) def first_passage_decomposition(self): r""" Decompose this word in the form (D 0)* P, where D is the family of complete Dyck words and P is the family of Dyck prefixes. The result is returned as a pair. EXAMPLES:: sage: first_passage_decomposition([0,1,1,0,0,1]) ([[]], [1, 1, 0, 0, 1]) sage: first_passage_decomposition([0,1,1,0,0,0,1]) ([[], [1, 1, 0, 0]), [1]) """ down = [] i = 0 # start of current piece h = 0 # current height s = -1 # next minimal height for j, e in enumerate(self): if e == 1: h += 1 else: h -= 1 if h == s: down.append(self[i:j]) i = j+1 s -= 1 return (down, self[i:]) def catalan_factorization(self): r""" Decompose this word in the form (D 0)* D (1 D)*, where D is the family of complete Dyck words. The result is returned as a triple. EXAMPLES:: sage: catalan_factorization([]) ([], [], []) sage: catalan_factorization([1]) ([], [], [[]]) sage: catalan_factorization([1,0,1]) ([], [1, 0], [[]]) sage: catalan_factorization([1,0,0,1,0,1,1,1,0,1,0,0]) ([[1, 0]], [1, 0], [[1, 1, 0, 1, 0, 0]]) sage: catalan_factorization([0,1,1,0,0,1,1,0,1]) ([[]], [1, 1, 0, 0], [[1, 0], []]) """ down, rest = first_passage_decomposition(self) up, middle = first_passage_decomposition([1-e for e in rest[::-1]]) return down, [1-e for e in middle[::-1]], [[1-e for e in p[::-1]] for p in up[::-1]] ----------------------------------------------------------------------------- Statistic values: 0 => 1 1 => 1 00 => 2 01 => 2 10 => 0 11 => 2 000 => 3 001 => 3 010 => 1 011 => 3 100 => 1 101 => 1 110 => 1 111 => 3 0000 => 4 0001 => 4 0010 => 2 0011 => 4 0100 => 2 0101 => 2 0110 => 2 0111 => 4 1000 => 2 1001 => 2 1010 => 0 1011 => 2 1100 => 0 1101 => 2 1110 => 2 1111 => 4 00000 => 5 00001 => 5 00010 => 3 00011 => 5 00100 => 3 00101 => 3 00110 => 3 00111 => 5 01000 => 3 01001 => 3 01010 => 1 01011 => 3 01100 => 1 01101 => 3 01110 => 3 01111 => 5 10000 => 3 10001 => 3 10010 => 1 10011 => 3 10100 => 1 10101 => 1 10110 => 1 10111 => 3 11000 => 1 11001 => 1 11010 => 1 11011 => 3 11100 => 1 11101 => 3 11110 => 3 11111 => 5 000000 => 6 000001 => 6 000010 => 4 000011 => 6 000100 => 4 000101 => 4 000110 => 4 000111 => 6 001000 => 4 001001 => 4 001010 => 2 001011 => 4 001100 => 2 001101 => 4 001110 => 4 001111 => 6 010000 => 4 010001 => 4 010010 => 2 010011 => 4 010100 => 2 010101 => 2 010110 => 2 010111 => 4 011000 => 2 011001 => 2 011010 => 2 011011 => 4 011100 => 2 011101 => 4 011110 => 4 011111 => 6 100000 => 4 100001 => 4 100010 => 2 100011 => 4 100100 => 2 100101 => 2 100110 => 2 100111 => 4 101000 => 2 101001 => 2 101010 => 0 101011 => 2 101100 => 0 101101 => 2 101110 => 2 101111 => 4 110000 => 2 110001 => 2 110010 => 0 110011 => 2 110100 => 0 110101 => 2 110110 => 2 110111 => 4 111000 => 0 111001 => 2 111010 => 2 111011 => 4 111100 => 2 111101 => 4 111110 => 4 111111 => 6 0000000 => 7 0000001 => 7 0000010 => 5 0000011 => 7 0000100 => 5 0000101 => 5 0000110 => 5 0000111 => 7 0001000 => 5 0001001 => 5 0001010 => 3 0001011 => 5 0001100 => 3 0001101 => 5 0001110 => 5 0001111 => 7 0010000 => 5 0010001 => 5 0010010 => 3 0010011 => 5 0010100 => 3 0010101 => 3 0010110 => 3 0010111 => 5 0011000 => 3 0011001 => 3 0011010 => 3 0011011 => 5 0011100 => 3 0011101 => 5 0011110 => 5 0011111 => 7 0100000 => 5 0100001 => 5 0100010 => 3 0100011 => 5 0100100 => 3 0100101 => 3 0100110 => 3 0100111 => 5 0101000 => 3 0101001 => 3 0101010 => 1 0101011 => 3 0101100 => 1 0101101 => 3 0101110 => 3 0101111 => 5 0110000 => 3 0110001 => 3 0110010 => 1 0110011 => 3 0110100 => 1 0110101 => 3 0110110 => 3 0110111 => 5 0111000 => 1 0111001 => 3 0111010 => 3 0111011 => 5 0111100 => 3 0111101 => 5 0111110 => 5 0111111 => 7 1000000 => 5 1000001 => 5 1000010 => 3 1000011 => 5 1000100 => 3 1000101 => 3 1000110 => 3 1000111 => 5 1001000 => 3 1001001 => 3 1001010 => 1 1001011 => 3 1001100 => 1 1001101 => 3 1001110 => 3 1001111 => 5 1010000 => 3 1010001 => 3 1010010 => 1 1010011 => 3 1010100 => 1 1010101 => 1 1010110 => 1 1010111 => 3 1011000 => 1 1011001 => 1 1011010 => 1 1011011 => 3 1011100 => 1 1011101 => 3 1011110 => 3 1011111 => 5 1100000 => 3 1100001 => 3 1100010 => 1 1100011 => 3 1100100 => 1 1100101 => 1 1100110 => 1 1100111 => 3 1101000 => 1 1101001 => 1 1101010 => 1 1101011 => 3 1101100 => 1 1101101 => 3 1101110 => 3 1101111 => 5 1110000 => 1 1110001 => 1 1110010 => 1 1110011 => 3 1110100 => 1 1110101 => 3 1110110 => 3 1110111 => 5 1111000 => 1 1111001 => 3 1111010 => 3 1111011 => 5 1111100 => 3 1111101 => 5 1111110 => 5 1111111 => 7 00000000 => 8 00000001 => 8 00000010 => 6 00000011 => 8 00000100 => 6 00000101 => 6 00000110 => 6 00000111 => 8 00001000 => 6 00001001 => 6 00001010 => 4 00001011 => 6 00001100 => 4 00001101 => 6 00001110 => 6 00001111 => 8 00010000 => 6 00010001 => 6 00010010 => 4 00010011 => 6 00010100 => 4 00010101 => 4 00010110 => 4 00010111 => 6 00011000 => 4 00011001 => 4 00011010 => 4 00011011 => 6 00011100 => 4 00011101 => 6 00011110 => 6 00011111 => 8 00100000 => 6 00100001 => 6 00100010 => 4 00100011 => 6 00100100 => 4 00100101 => 4 00100110 => 4 00100111 => 6 00101000 => 4 00101001 => 4 00101010 => 2 00101011 => 4 00101100 => 2 00101101 => 4 00101110 => 4 00101111 => 6 00110000 => 4 00110001 => 4 00110010 => 2 00110011 => 4 00110100 => 2 00110101 => 4 00110110 => 4 00110111 => 6 00111000 => 2 00111001 => 4 00111010 => 4 00111011 => 6 00111100 => 4 00111101 => 6 00111110 => 6 00111111 => 8 01000000 => 6 01000001 => 6 01000010 => 4 01000011 => 6 01000100 => 4 01000101 => 4 01000110 => 4 01000111 => 6 01001000 => 4 01001001 => 4 01001010 => 2 01001011 => 4 01001100 => 2 01001101 => 4 01001110 => 4 01001111 => 6 01010000 => 4 01010001 => 4 01010010 => 2 01010011 => 4 01010100 => 2 01010101 => 2 01010110 => 2 01010111 => 4 01011000 => 2 01011001 => 2 01011010 => 2 01011011 => 4 01011100 => 2 01011101 => 4 01011110 => 4 01011111 => 6 01100000 => 4 01100001 => 4 01100010 => 2 01100011 => 4 01100100 => 2 01100101 => 2 01100110 => 2 01100111 => 4 01101000 => 2 01101001 => 2 01101010 => 2 01101011 => 4 01101100 => 2 01101101 => 4 01101110 => 4 01101111 => 6 01110000 => 2 01110001 => 2 01110010 => 2 01110011 => 4 01110100 => 2 01110101 => 4 01110110 => 4 01110111 => 6 01111000 => 2 01111001 => 4 01111010 => 4 01111011 => 6 01111100 => 4 01111101 => 6 01111110 => 6 01111111 => 8 10000000 => 6 10000001 => 6 10000010 => 4 10000011 => 6 10000100 => 4 10000101 => 4 10000110 => 4 10000111 => 6 10001000 => 4 10001001 => 4 10001010 => 2 10001011 => 4 10001100 => 2 10001101 => 4 10001110 => 4 10001111 => 6 10010000 => 4 10010001 => 4 10010010 => 2 10010011 => 4 10010100 => 2 10010101 => 2 10010110 => 2 10010111 => 4 10011000 => 2 10011001 => 2 10011010 => 2 10011011 => 4 10011100 => 2 10011101 => 4 10011110 => 4 10011111 => 6 10100000 => 4 10100001 => 4 10100010 => 2 10100011 => 4 10100100 => 2 10100101 => 2 10100110 => 2 10100111 => 4 10101000 => 2 10101001 => 2 10101010 => 0 10101011 => 2 10101100 => 0 10101101 => 2 10101110 => 2 10101111 => 4 10110000 => 2 10110001 => 2 10110010 => 0 10110011 => 2 10110100 => 0 10110101 => 2 10110110 => 2 10110111 => 4 10111000 => 0 10111001 => 2 10111010 => 2 10111011 => 4 10111100 => 2 10111101 => 4 10111110 => 4 10111111 => 6 11000000 => 4 11000001 => 4 11000010 => 2 11000011 => 4 11000100 => 2 11000101 => 2 11000110 => 2 11000111 => 4 11001000 => 2 11001001 => 2 11001010 => 0 11001011 => 2 11001100 => 0 11001101 => 2 11001110 => 2 11001111 => 4 11010000 => 2 11010001 => 2 11010010 => 0 11010011 => 2 11010100 => 0 11010101 => 2 11010110 => 2 11010111 => 4 11011000 => 0 11011001 => 2 11011010 => 2 11011011 => 4 11011100 => 2 11011101 => 4 11011110 => 4 11011111 => 6 11100000 => 2 11100001 => 2 11100010 => 0 11100011 => 2 11100100 => 0 11100101 => 2 11100110 => 2 11100111 => 4 11101000 => 0 11101001 => 2 11101010 => 2 11101011 => 4 11101100 => 2 11101101 => 4 11101110 => 4 11101111 => 6 11110000 => 0 11110001 => 2 11110010 => 2 11110011 => 4 11110100 => 2 11110101 => 4 11110110 => 4 11110111 => 6 11111000 => 2 11111001 => 4 11111010 => 4 11111011 => 6 11111100 => 4 11111101 => 6 11111110 => 6 11111111 => 8 000000000 => 9 000000001 => 9 000000010 => 7 000000011 => 9 000000100 => 7 000000101 => 7 000000110 => 7 000000111 => 9 000001000 => 7 000001001 => 7 000001010 => 5 000001011 => 7 000001100 => 5 000001101 => 7 000001110 => 7 000001111 => 9 000010000 => 7 000010001 => 7 000010010 => 5 000010011 => 7 000010100 => 5 000010101 => 5 000010110 => 5 000010111 => 7 000011000 => 5 000011001 => 5 000011010 => 5 000011011 => 7 000011100 => 5 000011101 => 7 000011110 => 7 000011111 => 9 000100000 => 7 000100001 => 7 000100010 => 5 000100011 => 7 000100100 => 5 000100101 => 5 000100110 => 5 000100111 => 7 000101000 => 5 000101001 => 5 000101010 => 3 000101011 => 5 000101100 => 3 000101101 => 5 000101110 => 5 000101111 => 7 000110000 => 5 000110001 => 5 000110010 => 3 000110011 => 5 000110100 => 3 000110101 => 5 000110110 => 5 000110111 => 7 000111000 => 3 000111001 => 5 000111010 => 5 000111011 => 7 000111100 => 5 000111101 => 7 000111110 => 7 000111111 => 9 001000000 => 7 001000001 => 7 001000010 => 5 001000011 => 7 001000100 => 5 001000101 => 5 001000110 => 5 001000111 => 7 001001000 => 5 001001001 => 5 001001010 => 3 001001011 => 5 001001100 => 3 001001101 => 5 001001110 => 5 001001111 => 7 001010000 => 5 001010001 => 5 001010010 => 3 001010011 => 5 001010100 => 3 001010101 => 3 001010110 => 3 001010111 => 5 001011000 => 3 001011001 => 3 001011010 => 3 001011011 => 5 001011100 => 3 001011101 => 5 001011110 => 5 001011111 => 7 001100000 => 5 001100001 => 5 001100010 => 3 001100011 => 5 001100100 => 3 001100101 => 3 001100110 => 3 001100111 => 5 001101000 => 3 001101001 => 3 001101010 => 3 001101011 => 5 001101100 => 3 001101101 => 5 001101110 => 5 001101111 => 7 001110000 => 3 001110001 => 3 001110010 => 3 001110011 => 5 001110100 => 3 001110101 => 5 001110110 => 5 001110111 => 7 001111000 => 3 001111001 => 5 001111010 => 5 001111011 => 7 001111100 => 5 001111101 => 7 001111110 => 7 001111111 => 9 010000000 => 7 010000001 => 7 010000010 => 5 010000011 => 7 010000100 => 5 010000101 => 5 010000110 => 5 010000111 => 7 010001000 => 5 010001001 => 5 010001010 => 3 010001011 => 5 010001100 => 3 010001101 => 5 010001110 => 5 010001111 => 7 010010000 => 5 010010001 => 5 010010010 => 3 010010011 => 5 010010100 => 3 010010101 => 3 010010110 => 3 010010111 => 5 010011000 => 3 010011001 => 3 010011010 => 3 010011011 => 5 010011100 => 3 010011101 => 5 010011110 => 5 010011111 => 7 010100000 => 5 010100001 => 5 010100010 => 3 010100011 => 5 010100100 => 3 010100101 => 3 010100110 => 3 010100111 => 5 010101000 => 3 010101001 => 3 010101010 => 1 010101011 => 3 010101100 => 1 010101101 => 3 010101110 => 3 010101111 => 5 010110000 => 3 010110001 => 3 010110010 => 1 010110011 => 3 010110100 => 1 010110101 => 3 010110110 => 3 010110111 => 5 010111000 => 1 010111001 => 3 010111010 => 3 010111011 => 5 010111100 => 3 010111101 => 5 010111110 => 5 010111111 => 7 011000000 => 5 011000001 => 5 011000010 => 3 011000011 => 5 011000100 => 3 011000101 => 3 011000110 => 3 011000111 => 5 011001000 => 3 011001001 => 3 011001010 => 1 011001011 => 3 011001100 => 1 011001101 => 3 011001110 => 3 011001111 => 5 011010000 => 3 011010001 => 3 011010010 => 1 011010011 => 3 011010100 => 1 011010101 => 3 011010110 => 3 011010111 => 5 011011000 => 1 011011001 => 3 011011010 => 3 011011011 => 5 011011100 => 3 011011101 => 5 011011110 => 5 011011111 => 7 011100000 => 3 011100001 => 3 011100010 => 1 011100011 => 3 011100100 => 1 011100101 => 3 011100110 => 3 011100111 => 5 011101000 => 1 011101001 => 3 011101010 => 3 011101011 => 5 011101100 => 3 011101101 => 5 011101110 => 5 011101111 => 7 011110000 => 1 011110001 => 3 011110010 => 3 011110011 => 5 011110100 => 3 011110101 => 5 011110110 => 5 011110111 => 7 011111000 => 3 011111001 => 5 011111010 => 5 011111011 => 7 011111100 => 5 011111101 => 7 011111110 => 7 011111111 => 9 100000000 => 7 100000001 => 7 100000010 => 5 100000011 => 7 100000100 => 5 100000101 => 5 100000110 => 5 100000111 => 7 100001000 => 5 100001001 => 5 100001010 => 3 100001011 => 5 100001100 => 3 100001101 => 5 100001110 => 5 100001111 => 7 100010000 => 5 100010001 => 5 100010010 => 3 100010011 => 5 100010100 => 3 100010101 => 3 100010110 => 3 100010111 => 5 100011000 => 3 100011001 => 3 100011010 => 3 100011011 => 5 100011100 => 3 100011101 => 5 100011110 => 5 100011111 => 7 100100000 => 5 100100001 => 5 100100010 => 3 100100011 => 5 100100100 => 3 100100101 => 3 100100110 => 3 100100111 => 5 100101000 => 3 100101001 => 3 100101010 => 1 100101011 => 3 100101100 => 1 100101101 => 3 100101110 => 3 100101111 => 5 100110000 => 3 100110001 => 3 100110010 => 1 100110011 => 3 100110100 => 1 100110101 => 3 100110110 => 3 100110111 => 5 100111000 => 1 100111001 => 3 100111010 => 3 100111011 => 5 100111100 => 3 100111101 => 5 100111110 => 5 100111111 => 7 101000000 => 5 101000001 => 5 101000010 => 3 101000011 => 5 101000100 => 3 101000101 => 3 101000110 => 3 101000111 => 5 101001000 => 3 101001001 => 3 101001010 => 1 101001011 => 3 101001100 => 1 101001101 => 3 101001110 => 3 101001111 => 5 101010000 => 3 101010001 => 3 101010010 => 1 101010011 => 3 101010100 => 1 101010101 => 1 101010110 => 1 101010111 => 3 101011000 => 1 101011001 => 1 101011010 => 1 101011011 => 3 101011100 => 1 101011101 => 3 101011110 => 3 101011111 => 5 101100000 => 3 101100001 => 3 101100010 => 1 101100011 => 3 101100100 => 1 101100101 => 1 101100110 => 1 101100111 => 3 101101000 => 1 101101001 => 1 101101010 => 1 101101011 => 3 101101100 => 1 101101101 => 3 101101110 => 3 101101111 => 5 101110000 => 1 101110001 => 1 101110010 => 1 101110011 => 3 101110100 => 1 101110101 => 3 101110110 => 3 101110111 => 5 101111000 => 1 101111001 => 3 101111010 => 3 101111011 => 5 101111100 => 3 101111101 => 5 101111110 => 5 101111111 => 7 110000000 => 5 110000001 => 5 110000010 => 3 110000011 => 5 110000100 => 3 110000101 => 3 110000110 => 3 110000111 => 5 110001000 => 3 110001001 => 3 110001010 => 1 110001011 => 3 110001100 => 1 110001101 => 3 110001110 => 3 110001111 => 5 110010000 => 3 110010001 => 3 110010010 => 1 110010011 => 3 110010100 => 1 110010101 => 1 110010110 => 1 110010111 => 3 110011000 => 1 110011001 => 1 110011010 => 1 110011011 => 3 110011100 => 1 110011101 => 3 110011110 => 3 110011111 => 5 110100000 => 3 110100001 => 3 110100010 => 1 110100011 => 3 110100100 => 1 110100101 => 1 110100110 => 1 110100111 => 3 110101000 => 1 110101001 => 1 110101010 => 1 110101011 => 3 110101100 => 1 110101101 => 3 110101110 => 3 110101111 => 5 110110000 => 1 110110001 => 1 110110010 => 1 110110011 => 3 110110100 => 1 110110101 => 3 110110110 => 3 110110111 => 5 110111000 => 1 110111001 => 3 110111010 => 3 110111011 => 5 110111100 => 3 110111101 => 5 110111110 => 5 110111111 => 7 111000000 => 3 111000001 => 3 111000010 => 1 111000011 => 3 111000100 => 1 111000101 => 1 111000110 => 1 111000111 => 3 111001000 => 1 111001001 => 1 111001010 => 1 111001011 => 3 111001100 => 1 111001101 => 3 111001110 => 3 111001111 => 5 111010000 => 1 111010001 => 1 111010010 => 1 111010011 => 3 111010100 => 1 111010101 => 3 111010110 => 3 111010111 => 5 111011000 => 1 111011001 => 3 111011010 => 3 111011011 => 5 111011100 => 3 111011101 => 5 111011110 => 5 111011111 => 7 111100000 => 1 111100001 => 1 111100010 => 1 111100011 => 3 111100100 => 1 111100101 => 3 111100110 => 3 111100111 => 5 111101000 => 1 111101001 => 3 111101010 => 3 111101011 => 5 111101100 => 3 111101101 => 5 111101110 => 5 111101111 => 7 111110000 => 1 111110001 => 3 111110010 => 3 111110011 => 5 111110100 => 3 111110101 => 5 111110110 => 5 111110111 => 7 111111000 => 3 111111001 => 5 111111010 => 5 111111011 => 7 111111100 => 5 111111101 => 7 111111110 => 7 111111111 => 9 1010101010 => 0 1010101100 => 0 1010110010 => 0 1010110100 => 0 1010111000 => 0 1011001010 => 0 1011001100 => 0 1011010010 => 0 1011010100 => 0 1011011000 => 0 1011100010 => 0 1011100100 => 0 1011101000 => 0 1011110000 => 0 1100101010 => 0 1100101100 => 0 1100110010 => 0 1100110100 => 0 1100111000 => 0 1101001010 => 0 1101001100 => 0 1101010010 => 0 1101010100 => 0 1101011000 => 0 1101100010 => 0 1101100100 => 0 1101101000 => 0 1101110000 => 0 1110001010 => 0 1110001100 => 0 1110010010 => 0 1110010100 => 0 1110011000 => 0 1110100010 => 0 1110100100 => 0 1110101000 => 0 1110110000 => 0 1111000010 => 0 1111000100 => 0 1111001000 => 0 1111010000 => 0 1111100000 => 0 1111111110 => 8 1111111101 => 8 1111000001 => 2 1110111110 => 6 1110100001 => 2 1110011110 => 4 1110010001 => 2 1110001001 => 2 1110000101 => 2 1101111110 => 6 1101100001 => 2 1101010001 => 2 1101001110 => 2 1101001001 => 2 1101000101 => 2 1100110001 => 2 1100101001 => 2 1100100110 => 2 1100100101 => 2 1100011001 => 2 1100010101 => 2 1100010010 => 2 1100001000 => 4 1011111110 => 6 1011111101 => 6 1011100001 => 2 1011010001 => 2 1011001001 => 2 1011000101 => 2 1010111110 => 4 1010110001 => 2 1010101001 => 2 1010100110 => 2 1010100101 => 2 1010011010 => 2 1010011001 => 2 1010010110 => 2 1010010101 => 2 1010001110 => 4 1001111110 => 6 1001111000 => 2 1001110100 => 2 1001110001 => 2 1001101100 => 2 1001101010 => 2 1001101001 => 2 1001100110 => 2 1001100101 => 2 1001011110 => 4 1001011010 => 2 1001011001 => 2 1001010110 => 2 1001010101 => 2 1001001110 => 4 1000111110 => 6 1000111100 => 4 1000111010 => 4 1000110110 => 4 1000101110 => 4 1000011110 => 6 1000010110 => 4 1000001110 => 6 1000001010 => 4 1000000110 => 6 1000000100 => 6 1000000010 => 6 1000000000 => 8 0111111111 => 10 0111111101 => 8 0111111001 => 6 0111110001 => 4 0111100001 => 2 0111000001 => 4 0110000001 => 6 0100000001 => 8 0000000001 => 10 0111111011 => 8 0111110101 => 6 0111101001 => 4 0111010001 => 2 0110100001 => 4 0101000001 => 6 0010000001 => 8 0101010101 => 2 0101010011 => 4 0101001101 => 4 0101001011 => 4 0101000111 => 6 0100110101 => 4 0100110011 => 4 0100101101 => 4 0100101011 => 4 0100100111 => 6 0100011101 => 6 0100011011 => 6 0100010111 => 6 0100001111 => 8 0011010101 => 4 0011010011 => 4 0011001101 => 4 0011001011 => 4 0011000111 => 6 0010110101 => 4 0010110011 => 4 0010101101 => 4 0010101011 => 4 0010100111 => 6 0010011101 => 6 0010011011 => 6 0010010111 => 6 0010001111 => 8 0001110101 => 6 0001110011 => 6 0001101101 => 6 0001101011 => 6 0001100111 => 6 0001011101 => 6 0001011011 => 6 0001010111 => 6 0001001111 => 8 0000111101 => 8 0000111011 => 8 0000110111 => 8 0000101111 => 8 0000011111 => 10 0000000000 => 10 0000000110 => 8 0000011000 => 6 0000011110 => 8 0000010010 => 6 0001100000 => 6 0001100110 => 4 0001111000 => 4 0001111110 => 8 0001110010 => 4 0001001000 => 6 0001001110 => 6 0001000010 => 6 0001011010 => 4 0100000010 => 6 0010101010 => 2 0010101000 => 4 0010101100 => 2 0010100100 => 4 0010010100 => 4 0001010100 => 4 0010101110 => 4 0010100000 => 6 0010111100 => 4 0010000100 => 6 0011110100 => 4 0000010100 => 6 0111010100 => 2 0000000010 => 8 0000001110 => 8 0000111110 => 8 0000000100 => 8 0000001010 => 6 0000010110 => 6 0000101110 => 6 0001011110 => 6 0100000000 => 8 0100000011 => 8 0100000111 => 8 0100011111 => 8 0100111111 => 8 0101111111 => 8 0100000101 => 6 0100001011 => 6 0100101111 => 6 0101011111 => 6 0110111111 => 8 0101010110 => 2 0101011001 => 2 0101011010 => 2 0101011100 => 2 0101100101 => 2 0101100110 => 2 0101101001 => 2 0101101010 => 2 0101101100 => 2 0101110001 => 2 0101110010 => 2 0101110100 => 2 0101111000 => 2 0110010101 => 2 0110010110 => 2 0110011001 => 2 0110011010 => 2 0110011100 => 2 0110100101 => 2 0110100110 => 2 0110101001 => 2 0110101010 => 2 0110101100 => 2 0110110001 => 2 0110110010 => 2 0110110100 => 2 0110111000 => 2 0111000101 => 2 0111000110 => 2 0111001001 => 2 0111001010 => 2 0111001100 => 2 0111010010 => 2 0111011000 => 2 0111100010 => 2 0111100100 => 2 0111101000 => 2 0111110000 => 2 0100000100 => 6 0011100110 => 4 0011101010 => 4 0011101100 => 4 0001101110 => 6 0010110110 => 4 0011110010 => 4 0001110110 => 6 0100111010 => 4 0010111010 => 4 0011111000 => 4 0001111010 => 6 0100111100 => 4 0001111100 => 6 0000000101 => 8 0000001101 => 8 0000011101 => 8 0001111101 => 8 0011111101 => 8 0000001001 => 8 0000010101 => 6 0000101101 => 6 0010111101 => 6 0101111101 => 6 0010110001 => 4 0001100001 => 6 0001000001 => 8 0000111111 => 10 0001110100 => 4 0001101100 => 4 0010011100 => 4 0001011100 => 4 0000111100 => 6 0001101010 => 4 0010011010 => 4 0000111010 => 6 0010100110 => 4 0010010110 => 4 0001010110 => 4 0000110110 => 6 0010001110 => 6 0001101001 => 4 0000110001 => 6 0000010001 => 8 0000001100 => 6 0000011001 => 6 0000110011 => 6 0000110100 => 4 0000000011 => 10 0000011011 => 8 0001101111 => 8 0000110101 => 6 0010000010 => 6 0001000011 => 8 0010011110 => 6 0001010000 => 6 0001000100 => 6 0001010101 => 4 0001001011 => 6 0001100011 => 6 0001110111 => 8 0010000000 => 8 0000000111 => 10 0000001111 => 10 0001111111 => 10 0000001011 => 8 0000010111 => 8 0001011111 => 8 0001111001 => 6 0000011010 => 6 0000101010 => 4 0000100101 => 6 0010010001 => 6 0010000101 => 6 0010010101 => 4 0010010011 => 6 0000101011 => 6 0001000111 => 8 0000100111 => 8 0010010010 => 4 0001001010 => 4 0001001001 => 6 0001000101 => 6 0000100011 => 8 0000100100 => 6 0000100010 => 6 0010110000 => 4 0000011100 => 6 0000001000 => 8 0000101100 => 4 0010101111 => 6 0000101000 => 6 0010001000 => 6 0001001100 => 4 0001000110 => 6 0001100100 => 4 0001100010 => 4 0000100110 => 6 0000110010 => 4 0010010000 => 6 0001010010 => 4 0001000000 => 8 0001011001 => 4 0001100101 => 4 0001110001 => 4 0010011001 => 4 0010100101 => 4 0010101001 => 4 0010011111 => 8 0000111001 => 6 0010001101 => 6 0001001101 => 6 0001010001 => 6 0001010011 => 6 0001111011 => 8 0010011000 => 4 0001011000 => 4 0000100000 => 8 0010001011 => 6 0010000111 => 8 0000010011 => 8 0010001100 => 4 0010000110 => 6 0000110000 => 6 0000100001 => 8 0010100011 => 6 0010100001 => 6 0000111000 => 4 0001101000 => 4 0000010000 => 8 0000101001 => 6 0010100010 => 4 0010001001 => 6 0010000011 => 8 0010001010 => 4 0001110000 => 4 10000000000 => 9 10000000010 => 7 10000000110 => 7 10000001110 => 7 10000011110 => 7 10000111110 => 7 10001111110 => 7 10011111110 => 7 10111111110 => 7 11111111110 => 9 10000000100 => 7 10000001010 => 5 10000010110 => 5 10000101110 => 5 10001011110 => 5 10010111110 => 5 10101111110 => 5 11011111110 => 7 10000010000 => 7 10000100010 => 5 10001000010 => 5 10000100100 => 5 10001001010 => 3 10001000100 => 5 10000101000 => 5 10010001010 => 3 10001010010 => 3 10010000100 => 5 10001001000 => 5 10010010010 => 3 10001010100 => 3 10010101010 => 1 10010001000 => 5 10100010010 => 3 10010100010 => 3 10010010100 => 3 10100101010 => 1 01111111111 => 11 01111111101 => 9 01111111001 => 7 01111110001 => 5 01111100001 => 3 01111000001 => 3 01110000001 => 5 01100000001 => 7 01000000001 => 9 00000000001 => 11 00000000010 => 9 10101010101 => 1 10101010010 => 1 10101001001 => 3 10101001010 => 1 10101000100 => 3 10100100101 => 3 10100100010 => 3 10100101001 => 3 10100100100 => 3 10100010001 => 5 10100010100 => 3 10100001000 => 5 10010010101 => 3 10010001001 => 5 10010100101 => 3 10010101001 => 3 10010100100 => 3 10010010001 => 5 10001000101 => 5 10001001001 => 5 10001010001 => 5 10000100001 => 7 01001010101 => 3 01001010010 => 3 01001001001 => 5 01001001010 => 3 01001000100 => 5 01000100101 => 5 01000100010 => 5 01000101001 => 5 01000101010 => 3 01000100100 => 5 01000010001 => 7 01000010010 => 5 01000010100 => 5 01000001000 => 7 01010010101 => 3 01010010010 => 3 01010001001 => 5 01010001010 => 3 01010000100 => 5 01010100101 => 3 01010100010 => 3 01010101001 => 3 01010101010 => 1 01010100100 => 3 01010010001 => 5 01010010100 => 3 01010001000 => 5 01001000101 => 5 01001000010 => 5 01001010001 => 5 01001010100 => 3 01001001000 => 5 01000100001 => 7 01000101000 => 5 01000010000 => 7 00100010101 => 5 00100010010 => 5 00100001001 => 7 00100001010 => 5 00100000100 => 7 00100100101 => 5 00100100010 => 5 00100101001 => 5 00100101010 => 3 00100100100 => 5 00100010001 => 7 00100010100 => 5 00100001000 => 7 00101000101 => 5 00101000010 => 5 00101001001 => 5 00101001010 => 3 00101000100 => 5 00101010001 => 5 00101010010 => 3 00101010100 => 3 00101001000 => 5 00100100001 => 7 00100101000 => 5 00100010000 => 7 00010000101 => 7 00010000010 => 7 00010001001 => 7 00010001010 => 5 00010000100 => 7 00010010001 => 7 00010010010 => 5 00010010100 => 5 00010001000 => 7 00010100001 => 7 00010100010 => 5 00010100100 => 5 00010101000 => 5 00010010000 => 7 00001000001 => 9 00001000010 => 7 00001000100 => 7 00001001000 => 7 00001010000 => 7 00000100000 => 9 01000000000 => 9 01000000011 => 9 01000000111 => 9 01000001111 => 9 01000011111 => 9 01000111111 => 9 01001111111 => 9 01011111111 => 9 00000000101 => 9 00000001101 => 9 00000011101 => 9 00000111101 => 9 00001111101 => 9 00011111101 => 9 00111111101 => 9 11111111101 => 9 101010101010 => 0 101010101100 => 0 101010110010 => 0 101010110100 => 0 101010111000 => 0 101011001010 => 0 101011001100 => 0 101011010010 => 0 101011010100 => 0 101011011000 => 0 101011100010 => 0 101011100100 => 0 101011101000 => 0 101011110000 => 0 101100101010 => 0 101100101100 => 0 101100110010 => 0 101100110100 => 0 101100111000 => 0 101101001010 => 0 101101001100 => 0 101101010010 => 0 101101010100 => 0 101101011000 => 0 101101100010 => 0 101101100100 => 0 101101101000 => 0 101101110000 => 0 101110001010 => 0 101110001100 => 0 101110010010 => 0 101110010100 => 0 101110011000 => 0 101110100010 => 0 101110100100 => 0 101110101000 => 0 101110110000 => 0 101111000010 => 0 101111000100 => 0 101111001000 => 0 101111010000 => 0 101111100000 => 0 110010101010 => 0 110010101100 => 0 110010110010 => 0 110010110100 => 0 110010111000 => 0 110011001010 => 0 110011001100 => 0 110011010010 => 0 110011010100 => 0 110011011000 => 0 110011100010 => 0 110011100100 => 0 110011101000 => 0 110011110000 => 0 110100101010 => 0 110100101100 => 0 110100110010 => 0 110100110100 => 0 110100111000 => 0 110101001010 => 0 110101001100 => 0 110101010010 => 0 110101010100 => 0 110101011000 => 0 110101100010 => 0 110101100100 => 0 110101101000 => 0 110101110000 => 0 110110001010 => 0 110110001100 => 0 110110010010 => 0 110110010100 => 0 110110011000 => 0 110110100010 => 0 110110100100 => 0 110110101000 => 0 110110110000 => 0 110111000010 => 0 110111000100 => 0 110111001000 => 0 110111010000 => 0 110111100000 => 0 111000101010 => 0 111000101100 => 0 111000110010 => 0 111000110100 => 0 111000111000 => 0 111001001010 => 0 111001001100 => 0 111001010010 => 0 111001010100 => 0 111001011000 => 0 111001100010 => 0 111001100100 => 0 111001101000 => 0 111001110000 => 0 111010001010 => 0 111010001100 => 0 111010010010 => 0 111010010100 => 0 111010011000 => 0 111010100010 => 0 111010100100 => 0 111010101000 => 0 111010110000 => 0 111011000010 => 0 111011000100 => 0 111011001000 => 0 111011010000 => 0 111011100000 => 0 111100001010 => 0 111100001100 => 0 111100010010 => 0 111100010100 => 0 111100011000 => 0 111100100010 => 0 111100100100 => 0 111100101000 => 0 111100110000 => 0 111101000010 => 0 111101000100 => 0 111101001000 => 0 111101010000 => 0 111101100000 => 0 111110000010 => 0 111110000100 => 0 111110001000 => 0 111110010000 => 0 111110100000 => 0 111111000000 => 0 100001111100 => 6 010101010101 => 2 010101010011 => 4 010101001101 => 4 010101001011 => 4 010101000111 => 6 010100110101 => 4 010100110011 => 4 010100101101 => 4 010100101011 => 4 010100100111 => 6 010100011101 => 6 010100011011 => 6 010100010111 => 6 010100001111 => 8 010011010101 => 4 010011010011 => 4 010011001101 => 4 010011001011 => 4 010011000111 => 6 010010110101 => 4 010010110011 => 4 010010101101 => 4 010010101011 => 4 010010100111 => 6 010010011101 => 6 010010011011 => 6 010010010111 => 6 010010001111 => 8 010001110101 => 6 010001110011 => 6 010001101101 => 6 010001101011 => 6 010001100111 => 6 010001011101 => 6 010001011011 => 6 010001010111 => 6 010001001111 => 8 010000111101 => 8 010000111011 => 8 010000110111 => 8 010000101111 => 8 010000011111 => 10 001101010101 => 4 001101010011 => 4 001101001101 => 4 001101001011 => 4 001101000111 => 6 001100110101 => 4 001100110011 => 4 001100101101 => 4 001100101011 => 4 001100100111 => 6 001100011101 => 6 001100011011 => 6 001100010111 => 6 001100001111 => 8 001011010101 => 4 001011010011 => 4 001011001101 => 4 001011001011 => 4 001011000111 => 6 001010110101 => 4 001010110011 => 4 001010101101 => 4 001010101011 => 4 001010100111 => 6 001010011101 => 6 001010011011 => 6 001010010111 => 6 001010001111 => 8 001001110101 => 6 001001110011 => 6 001001101101 => 6 001001101011 => 6 001001100111 => 6 001001011101 => 6 001001011011 => 6 001001010111 => 6 001001001111 => 8 001000111101 => 8 001000111011 => 8 001000110111 => 8 001000101111 => 8 001000011111 => 10 000111010101 => 6 000111010011 => 6 000111001101 => 6 000111001011 => 6 000111000111 => 6 000110110101 => 6 000110110011 => 6 000110101101 => 6 000110101011 => 6 000110100111 => 6 000110011101 => 6 000110011011 => 6 000110010111 => 6 000110001111 => 8 000101110101 => 6 000101110011 => 6 000101101101 => 6 000101101011 => 6 000101100111 => 6 000101011101 => 6 000101011011 => 6 000101010111 => 6 000101001111 => 8 000100111101 => 8 000100111011 => 8 000100110111 => 8 000100101111 => 8 000100011111 => 10 000011110101 => 8 000011110011 => 8 000011101101 => 8 000011101011 => 8 000011100111 => 8 000011011101 => 8 000011011011 => 8 000011010111 => 8 000011001111 => 8 000010111101 => 8 000010111011 => 8 000010110111 => 8 000010101111 => 8 000010011111 => 10 000001111101 => 10 000001111011 => 10 000001110111 => 10 000001101111 => 10 000001011111 => 10 000000111111 => 12 111110000001 => 2 111001100001 => 2 111000011001 => 2 111000110001 => 2 111000100101 => 2 111011000001 => 2 111010010001 => 2 111010000101 => 2 100111100001 => 2 100110011001 => 2 100110110001 => 2 100110100101 => 2 101101100001 => 2 101100011001 => 2 101100110001 => 2 101100100101 => 2 101111000001 => 2 101110010001 => 2 101110000101 => 2 101001011001 => 2 101001110001 => 2 101001100101 => 2 101011010001 => 2 101011000101 => 2 101010010101 => 2 000001111110 => 10 000111100110 => 6 000111111000 => 6 000111110010 => 6 000111001110 => 6 000111011010 => 6 000101101110 => 6 000101111010 => 6 011001100110 => 2 011001111000 => 2 011001110010 => 2 011001011010 => 2 011110000110 => 2 011110011000 => 2 011110010010 => 2 011111100000 => 2 011111001000 => 2 011111000010 => 2 011100100110 => 2 011100111000 => 2 011100110010 => 2 011100011010 => 2 011101101000 => 2 011101100010 => 2 011101001010 => 2 010011111000 => 4 010011110010 => 4 010011011010 => 4 010001111010 => 6 010110100110 => 2 010110111000 => 2 010110110010 => 2 010110011010 => 2 010111101000 => 2 010111100010 => 2 010111001010 => 2 010101101010 => 2 010101010110 => 2 010101011001 => 2 010101011010 => 2 010101011100 => 2 010101100101 => 2 010101100110 => 2 010101101001 => 2 010101101100 => 2 010101110001 => 2 010101110010 => 2 010101110100 => 2 010101111000 => 2 010110010101 => 2 010110010110 => 2 010110011001 => 2 010110011100 => 2 010110100101 => 2 010110101001 => 2 010110101010 => 2 010110101100 => 2 010110110001 => 2 010110110100 => 2 010111000101 => 2 010111000110 => 2 010111001001 => 2 010111001100 => 2 010111010001 => 2 010111010010 => 2 010111010100 => 2 010111011000 => 2 010111100001 => 2 010111100100 => 2 010111110000 => 2 011001010101 => 2 011001010110 => 2 011001011001 => 2 011001011100 => 2 011001100101 => 2 011001101001 => 2 011001101010 => 2 011001101100 => 2 011001110001 => 2 011001110100 => 2 011010010101 => 2 011010010110 => 2 011010011001 => 2 011010011010 => 2 011010011100 => 2 011010100101 => 2 011010100110 => 2 011010101001 => 2 011010101010 => 2 011010101100 => 2 011010110001 => 2 011010110010 => 2 011010110100 => 2 011010111000 => 2 011011000101 => 2 011011000110 => 2 011011001001 => 2 011011001010 => 2 011011001100 => 2 011011010001 => 2 011011010010 => 2 011011010100 => 2 011011011000 => 2 011011100001 => 2 011011100010 => 2 011011100100 => 2 011011101000 => 2 011011110000 => 2 011100010101 => 2 011100010110 => 2 011100011001 => 2 011100011100 => 2 011100100101 => 2 011100101001 => 2 011100101010 => 2 011100101100 => 2 011100110001 => 2 011100110100 => 2 011101000101 => 2 011101000110 => 2 011101001001 => 2 011101001100 => 2 011101010001 => 2 011101010010 => 2 011101010100 => 2 011101011000 => 2 011101100001 => 2 011101100100 => 2 011101110000 => 2 011110000101 => 2 011110001001 => 2 011110001010 => 2 011110001100 => 2 011110010001 => 2 011110010100 => 2 011110100001 => 2 011110100010 => 2 011110100100 => 2 011110101000 => 2 011110110000 => 2 011111000001 => 2 011111000100 => 2 011111010000 => 2 001111000110 => 4 001111001010 => 4 100111001100 => 2 001111001100 => 4 001011010110 => 4 001111010010 => 4 100111010100 => 2 001111010100 => 4 000111010110 => 6 001011011010 => 4 100111011000 => 2 001111011000 => 4 100011011100 => 4 010011011100 => 4 001011011100 => 4 000111011100 => 6 000011011110 => 8 001101100110 => 4 001101101010 => 4 100101101100 => 2 001101101100 => 4 001011100110 => 4 001111100010 => 4 100111100100 => 2 001111100100 => 4 010011101010 => 4 001011101010 => 4 100111101000 => 2 001111101000 => 4 000111101010 => 6 100011101100 => 4 010011101100 => 4 001011101100 => 4 000111101100 => 6 000011101110 => 8 101001110100 => 2 001001110110 => 6 001101110010 => 4 100101110100 => 2 001101110100 => 4 000101110110 => 6 001011110010 => 4 100111110000 => 2 001111110000 => 4 100011110100 => 4 010011110100 => 4 001011110100 => 4 000111110100 => 6 000011110110 => 8 110001111000 => 2 101001111000 => 2 001001111010 => 6 100101111000 => 2 001101111000 => 4 100011111000 => 4 001011111000 => 4 000011111010 => 8 010001111100 => 6 001001111100 => 6 000101111100 => 6 000011111100 => 8 100101010101 => 2 100101011001 => 2 100101100101 => 2 100101101001 => 2 100101110001 => 2 100110010101 => 2 100110101001 => 2 100111000101 => 2 100111001001 => 2 100111010001 => 2 101001010101 => 2 101001101001 => 2 101010011001 => 2 101010100101 => 2 101010101001 => 2 101010110001 => 2 101011001001 => 2 101011100001 => 2 101100010101 => 2 101100101001 => 2 101101000101 => 2 101101001001 => 2 101101010001 => 2 101110001001 => 2 101110100001 => 2 110001010101 => 2 110001011001 => 2 110001100101 => 2 110001101001 => 2 110001110001 => 2 110010010101 => 2 110010011001 => 2 110010100101 => 2 110010101001 => 2 110010110001 => 2 110011000101 => 2 110011001001 => 2 110011010001 => 2 110011100001 => 2 110100010101 => 2 110100011001 => 2 110100100101 => 2 110100101001 => 2 110100110001 => 2 110101000101 => 2 110101001001 => 2 110101010001 => 2 110101100001 => 2 110110000101 => 2 110110001001 => 2 110110010001 => 2 110110100001 => 2 110111000001 => 2 111000010101 => 2 111000101001 => 2 111001000101 => 2 111001001001 => 2 111001010001 => 2 111010001001 => 2 111010100001 => 2 111100000101 => 2 111100001001 => 2 111100010001 => 2 111100100001 => 2 111101000001 => 2 10110111100000 => 0 10111011010000 => 0 10111011100000 => 0 10111100110000 => 0 10111101001000 => 0 10111101010000 => 0 10111101100000 => 0 10111110000100 => 0 10111110001000 => 0 10111110010000 => 0 10111110100000 => 0 10111111000000 => 0 11001111100000 => 0 11011110000010 => 0 11101101000010 => 0 11101110000010 => 0 11110011000010 => 0 11110100100010 => 0 11110101000010 => 0 11110110000010 => 0 11111000001100 => 0 11111000010010 => 0 11111000100010 => 0 11111001000010 => 0 11111010000010 => 0 11111100000010 => 0 1011110111000000 => 0 1011111010100000 => 0 1011111011000000 => 0 1011111100010000 => 0 1011111100100000 => 0 1011111101000000 => 0 1011111110000000 => 0 1111011100000010 => 0 1111101010000010 => 0 1111101100000010 => 0 1111110001000010 => 0 1111110010000010 => 0 1111110100000010 => 0 1111111000000010 => 0 111111110000000010 => 0 101111111100000000 => 0 111111101000000010 => 0 101111111010000000 => 0 111111100100000010 => 0 111111011000000010 => 0 101111111001000000 => 0 101111110110000000 => 0 11111111100000000010 => 0 10111111111000000000 => 0 11111111010000000010 => 0 10111111110100000000 => 0 1111111111000000000010 => 0 1011111111110000000000 => 0 ----------------------------------------------------------------------------- Created: Jul 03, 2017 at 21:29 by Martin Rubey ----------------------------------------------------------------------------- Last Updated: Dec 28, 2017 at 15:24 by Martin Rubey