---> 2 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: 1 Отображать по:
+ структуры данных (например, двумерное дерево интервалов)

Недавно разведка перехватила зашифрованное сообщение — строку s. Все ресурсы аналитического центра, в котором вы работаете, были брошены на его декодирование. Ваш отдел занимается шифрами нового поколения. На данный момент известно всего n таких шифров. Для каждого из них есть три характерных параметра — целые числа l, r и строка t. Пусть строка g была получена в результате применения этого метода. Тогда строка glgl+1 . . . gr−1gr (здесь gi — это i-й символ строки g) содержит t как подстроку.

Вам поручено определить для каждого типа шифрования, могло ли сообщение s быть получено в результате его применения.

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

Первая строка входного файла содержит строку s (1 ≤ |s| ≤ 100 000, где |s| — длина строки s).

Вторая строка входного файла содержит целое число n — количество типов шифрования (1 ≤ ≤ 100 000). Последующие nстрок содержат по два целых числа li, ri и строку ti, разделенные пробелами — характерные параметры i-го метода шифрования (1 ≤ liri ≤ |s|).

Все строки состоят из строчных букв латинского алфавита. Суммарная длина всех ti не превосходит 100 000.

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

Выведите одну строку — для каждого типа шифрования «+», если сообщение s могло быть получено в результате его применения, или «-» в противном случае.

Примеры
Входные данные
frommarsiam
3
6 10 i
2 11 am
1 9 human
Выходные данные
++-
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

В стандартном поточике вводика или файлике inputik.txt ваша программочка найдёт строчечку из маленьких латинских буковок, которую мы назовём исходненькой. На следующей строчечке программочка найдёт числище N (1 ≤ N ≤ 1 000 000), а в следующих N строчечках — по словечку из тех же маленьких латинских буковок; эти словечки мы назовём словариком. Суммарненькая суммочка длиннищ словечек из словарика не превосходит 1 000 000

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

Ваша программочка должна вывести на стандартный поточичек выводика или в файлик outputik.txt N строчечек. В i-ой строчечке программочка должна вывести несколько чиселок: первое чиселко - количюсик (сколько штучечек) вхожденьечек строчечки i из словарика в исходненькой, затем через пробельчик для каждого вхожденьичка выведите индексики началиков всех вхожденьичек этой строчечки в исходненькую в отсортированном порядочке. Индексики всех строчечек начинаются с единичек. Няшечки-преподавашечки гарантируют, что колючюсик вхожденьичек не превосходит 1 000 000.

Примеры

Входные данные
abracadabra
4
abra
ab
marazm
cadabra
Выходные данные
2 1 8
2 1 8
0
1 5

Страница: 1 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест