У китайських шашках шматок може переміщатися, перестрибуючи будь-який інший шматок, або роблячи послідовність таких хмелів. Ваше завдання - знайти якомога довшу послідовність хмелю.
Вхідні дані
Послідовність 121 нуля або одиниць, кожен з яких представляє місце на дошці. Нуль означає, що місце порожнє; один означає, що місце займають. Позиції перераховані зліва направо; зверху вниз. Наприклад, вхід цієї установки буде
1011110011000001000000000000000000000000100000000001000000000000000000000000000001000000000000000000000001000001100111111
Пояснення:
Найбільше місце займає зелений шматок, тому перша цифра у введенні є
1
. Другий ряд має одну порожню позицію, а потім одну зайняту позицію, тому01
йде наступна. Третій ряд весь зайнятий, так111
. У четвертому ряду є два порожніх і два зайняті пробіли (йде ліворуч праворуч), так0011
. Потім приходить п'ять0
s, a1
, і сім0
для наступного ряду тощо.
Як і в цій установці, кут спрямований прямо вгору. На дошці може бути будь-яка кількість штук (від 1 до 121). Зверніть увагу, що шматочки різних кольорів представлені не по-різному.
Вихідні дані
Максимальна довжина законного хопу, використовуючи будь-який шматок на дошці. Ви не можете відвідувати одне і те ж місце більше одного разу (включаючи стартову та кінцеву позиції). Однак ви можете перестрибувати один і той же шматок не раз. Якщо немає законного скаку, виведіть 0
. Не враховуйте, чи існує законний неприскорений хід.
Наприклад, вихід до установки, описаної вище, є 3
.
Введення та виведення може здійснюватися за допомогою stdin та stdout, через аргументи командного рядка, через виклики функцій або будь-який подібний метод.
Випробування
Вхід:
0100000010000000000000000100000000000000000000000000000001010010000000000000000000000101000000000000000000100000000100001
Вихід: 0
(жодна частина не знаходиться поруч)
Вхід:
0000000000111100000000011100000000011000000000100000000000000000000000000000000000000000000000000000000000000000000000000
Вихід: 1
(початкова установка для одного гравця у верхньому лівому куті)