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