Олимпиадный тренинг

Задача . C. Волшебная пятерка


Дана длинная табличка s с n цифрами, записанными на ней в ряд. Яхуб хочет удалить некоторое количество цифр (возможно, нулевое, но удалять все цифры не разрешается), чтобы получить на табличке «волшебное число», число, которое делится на 5. Обратите внимание, что итоговое число может содержать лидирующие нули.

Теперь Яхуб хочет посчитать количество способов, которыми он может получить волшебное число, по модулю 1000000007 (109 + 7). Два способа различны тогда, когда набор удаленных позиций в s различается.

Обратите внимание на описание входных данных, s задана в особой форме.

Входные данные

В первой строке дана строка a (1 ≤ |a| ≤ 105), содержащая только цифры. Во второй строке дано целое число k (1 ≤ k ≤ 109). Строка с цифрами, записанная на таблице s, получается как конкатенация k копий a. То есть, n = |ak.

Выходные данные

Выведите единственное целое число — требуемое количество способов по модулю 1000000007 (109 + 7).

Примечание

В первом тесте есть четыре возможных способа получить число, делимое на 5: 5, 15, 25 и 125.

Во втором тесте не забудьте выполнить конкатенацию копий a. Нужная табличка — 1399013990.

В третьем тесте можно выбрать любой вариант (кроме удаления всех цифр). Следовательно, есть 26 - 1 = 63 возможных способов удалить цифры.


Примеры
Входные данныеВыходные данные
1 1256
1
4
2 13990
2
528
3 555
2
63

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя