ABBYY Cup 2.0 - Easy |
---|
Закончено |
Строки Фибоначчи определяются следующим образом:
Таким образом, первые пять строк Фибоначчи: «a», «b», «ba», «bab», «babba».
Вам дана строка Фибоначчи и m строк si. Для каждой строки si найдите, сколько раз она встречается в данной строке Фибоначчи в качестве подстроки.
В первой строке записано два целых числа через пробел k и m — номер строки Фибоначчи и количество запросов, соответственно.
В следующих m строках записаны строки si, соответствующие запросам. Гарантируется, что строки si непусты и состоят только из символов «a» и «b».
Ограничения на входные данные для получения 30 баллов:
Ограничения на входные данные для получения 100 баллов:
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
Для каждой строки si выведите, сколько раз она встречается в заданной строке Фибоначчи в качестве подстроки. Так как числа могут оказаться достаточно большими, выводите их остатки от деления на 1000000007 (109 + 7). Ответы для строк выводите в том порядке, в котором строки записаны во входных данных.
6 5
a
b
ab
ba
aba
3
5
3
3
1
Название |
---|