Разберём решение ещё одной задачи на динамическое программирование, в которой нет ничего сложного, и можно рассмотреть все шаги решения таких задач. Сначала читаем условие: Алгоритм решения будет точно таким же, как и в задачах Задача 11. Зайчик и Задача 29. Компьютерная игра. Но здесь есть дополнительные ограничения, поэтому рекомендую разобраться с теми задачами и потом вернуться сюда. Как обычно, сначала надо определиться, что будет состоянием динамики. Выберем в качестве состояния длину префикса введённого числа. И для каждого префикса посчитаем, сколько есть вариантов его разделить, согласно условиям задачи. Вторая часть - это составление рекуррентного соотношения. Его можно получить, если ответить на вопрос: "Как можно получить состояние i?" или в нашем случае: "Как получается префикс длины i?". Ответ простой: Третья составляющая - база динамики. Тут совсем просто - префикс длины 0 можно получить одним способом. Давайте теперь запишем это решение. Считываем входные данные и числа