Раніше я визначив процес дроблення масиву
У роздачі ми читаємо масив зліва направо. Якщо в точці ми зустрічаємо два однакових елемента підряд, ми видаляємо перший і подвоюємо другий.
Наприклад, ось процес дроблення наступного масиву
[5,2,2,4]
^
[5,2,2,4]
^
[5,2,2,4]
^
[5,4,4]
^
[5,4,4]
^
[5,8]
^
Зауважте, що один і той же елемент можна згортати кілька разів. У прикладі 2,2,4було розбито 8в один прохід.
Тепер дроблення масивів легко, те, що важко, видаляє їх. Ваше завдання - взяти масив додатних цілих чисел як вхід і вивести найбільший масив, який може сформувати вхід при повторному подрібненні. Наприклад, масив [4]формується дробленням, [2,2]яке, у свою чергу, формується дробленням [1,1,1,1]. Оскільки ми не можемо мати цілі значення, [1,1,1,1]то не можна більше розмивати, і тому наша відповідь.
Ви ніколи не отримаєте 0вхідний масив, оскільки такі масиви можна розширювати на невизначений термін. Ви також ніколи не отримаєте справу з двома однаковими непарними номерами поруч, такі випадки не можуть бути результатом розбиття.
Це код-гольф, тому відповіді будуть набиратися з розміром їх джерела, виміряним у байтах, меншим числом байтів.
Перш ніж розпочати свою відповідь, я просто хочу сказати, що цей виклик значно складніше, ніж здається. Перевірте свою інтуїцію, коли ви йдете разом, і переконайтеся, що ваша відповідь проходить усі тестові випадки.
Випробування
[] -> []
[5] -> [5]
[6] -> [3,3]
[8] -> [1,1,1,1,1,1,1,1]
[4,8] -> [1,1,1,1,1,1,1,1,1,1,2]
[2,8] -> [1, 1, 1, 1, 2, 1, 1, 1, 1]
[4,4] -> [1,1,1,1,1,1,1,1]
[1,>1,1,1,1,1,1,1,1,1,2], [2,>1,1,1,1,1,1,1,1,2], [2,1,>1,1,1,1,1,1,1,2], [2,2,>1,1,1,1,1,1,2], [2,2,1,>1,1,1,1,1,2], [2,2,2,>1,1,1,1,2], [2,2,2,1,>1,1,1,2], [2,2,2,2,>1,1,2], [2,2,2,2,1,>1,2], [2,2,2,2,2,>2], [2,2,2,2,4>], другий прохід: [2,>2,2,2,4], [4,>2,2,4], [4,2,>2,4], [4,4,>4], [4,8>]. Сподіваюсь, що це очистить. Якщо ви хочете, щоб якийсь код поглянути на попереднє питання, має відповіді, які реалізують функцію дроблення.
[4, 4]слід вилучити, оскільки ми ніколи не зможемо отримати цей масив після розтягування => послідовності розчавлення, оскільки це закінчиться[8]
[1,1,1,1,1,1,1,1,1,1,2]виробляти[4, 8]замість[8, 4]? це повинно бути[1,>1,1,1,1,1,1,1,1,1,2],[2,1,>1,1,1,1,1,1,1,2],[2,>2,1,1,1,1,1,1,2],[4,1,>1,1,1,1,1,2],[4,2,1,>1,1,1,2],[4,2,>2,1,1,2],[4,>4,1,1,2],[8,1,>1,2],[8,2,>2],[8,4]?