Декодирование сообщения
시간 제한2초메모리 제한1024 MB
주어진 숫자 문자열 s로 인코딩되는 라틴 문자 문자열의 개수를 1e9+7로 나눈 나머지를 구한다.
문제
Во время последней секретной операции Капитану Марвел удалось выкрасть закодированное секретное сообщение скруллов --- строку . Однако, в закодированном виде никакой полезной информации оно из себя не представляет, поэтому его непременно нужно раскодировать.
Несмотря на развитость скруллов, их система кодирования сообщений проста и общеизвестна:
- Перед кодированием сообщения выбирается цифра ()
- Символы сообщения рассматриваются слева направо
- У каждого символа сообщения вычисляется его ASCII-код (например, у <<
a>> он равен , у <<b>> --- , у <<z>> --- ) - Если код трехзначный, он дописывается к текущей закодированной строке как есть, если же код двузначный, к нему в случайное место добавляется цифра и полученный результат дописывается к текущей закодированной строке (например, если , а текущая буква --- <<
a>>, к текущей закодированной строке могут дописатсья числа , или ) - После обработки всех букв, результатом считается полученная закодированная строка
Число обычно передается вместе с сообщением, но Капитану Марвел не удалось его найти. Однако, она точно знает, что исходное сообщение состояло только из строчных и заглавных латинских букв. Она понимает, что без числа раскодировать сообщение однозначно может не получиться, поэтому для начала хочет посчитать, сколько существует различных строк , состоящих из строчных и заглавных латинских букв, таких, что, закодировав их, получится строка . Так как наша героиня не может быть полностью уверена, что сообщение было перехвачено полностью, вполне возможно, что его невозможно декодировать ни одним способом.
Помогите нашей героине --- найдите количество этих строк по модулю .
입력
В единственной строке содержится закодированная строка , выкраденная Капитаном Марвел (). Гарантируется, что строка состоит только из цифр, а также что ее длина кратна .
출력
В единственной строке выведите одно число --- количество различных строк, состоящих из строчных и заглавных латинских букв, которые кодируются в строку , по модулю .
힌트
В первом примере закодированную строку можно получить из <<b>>, если , а также из <<X>>, если .
Во втором примере закодированную строку можно получить только из <<dZ>> при .