Рассмотрим простую задачу на динамическое программирование, в которой построение ответа почти в два раза больше, чем само решение. Читаем условие: Задача не является продолжением или вариацией задачи 16. Лесенка, но решать будем тоже с помощью динамики. Считаем входные данные и сразу преобразуем их к числовым типам: Состоянием в динамическом программировании будет номер ступеньки, на которой стоит Вова. Чтобы узнать переходы, надо ответить на вопрос "Как Вова мог здесь оказаться?". Ответ очень простой - или с предыдущей ступеньки или через одну от неё. И надо лишь выбрать максимум среди этих двух чисел. Ступеньки нумеруются с первой, поэтому можем добавить фиктивную - нулевую - на которой Вова стоит изначально. Тогда база динамики будет 0. Здесь мы, помимо базы, инициализировали массив ещё парой значений, чтобы не переживать из-за выхода за границы массива в основном цикле. Это стало возможно в том числе благодаря тому, что входной массив содержит не меньше двух элементов. После этого