eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Интервалы

Интервалы

Число называется хорошим, если оно состоит из хороших цифр.

Дано n интервалов [li, ri] и множество цифр, которые считаются хорошими. Сколько существует способов выбрать по одному числу из каждого интервала таким образом, чтобы их сумма была хорошим числом. Можно выбрать одно и то же число из нескольких интервалов. Два варианта выбора считаются различными, если существует такое число i (1in), что из интервала i выбраны различные числа. Ответ может быть большим, поэтому ответ следует вывести по модулю 109 + 7.

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

Первая строка содержит десять целых чисел: i-ое число равно 1, если цифра i хорошая и 0 иначе. Эти числа пронумерованы с 0 до 9. Следующая строка содержит количество интервалов n (1n7). Каждая из следующих n строк содержит два целых числа без ведущих нулей: li и ri (0liri < 1010).

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

Вывести количество способов по модулю 109 + 7.

Лимит времени 2 секунды
Лимит использования памяти 128 MiB
Входные данные #1
1 1 1 1 1 1 1 1 1 1
2
4 6
15 19
Выходные данные #1
15
Входные данные #2
1 0 1 0 1 0 1 0 0 0
2
4 6
15 19
Выходные данные #2
7
Входные данные #3
1 0 0 1 1 1 1 1 1 1
2
4 6
15 19
Выходные данные #3
0
Источник 2013 Петрозаводск, Moscow SU ST + NNSU Contest, День 2, Август 24, Задача H