Олимпиадная задача на динамическое программирование

Рейтинг: 0Ответов: 1Опубликовано: 21.08.2023

На сборах по программированию дали задачу, решение не прошу, но если у вас есть какие-либо идеи (на какую хотя бы тему эта задача) буду очень рад. Петя - программист, поэтому у него есть одно странное увлечение, он любит играть с массивами. Перед игрой он выбирает число K, после чего Петя может брать НЕ МЕНЕЕ чем K подряд идущих цифр и менять их (в массиве записаны лишь 0 и 1, мальчик нули меняет на единицы и обратно). Задача Пети сделать так, чтобы в массиве остались лишь нули, а ваша - найти самую большую K. Пример: 010 Ответ: 2

Разбор: Сначала Петя сделает массив 001, затем 111, а после 000 (он может это сделать ведь длина отрезка на котором он меняет цифры >= k).

Ответы

▲ 0

Возьмем K = количество_цифр - 1.

Очевидно, что это дает свободно менять первую и последнюю цифру (можно поменять сначала весь массив кроме нее, а потом ее саму), а середина массива должна быть или из одних нулей, или из одних единиц.

Дальше должно быть просто.