ABBYY Cup 3.0 |
---|
Закончено |
Умный Бобер недавно увлекся новой игрой в слова. Ее суть состоит в следующем: подсчитать количество различных хороших подстрок некоторой строки s. Для определения того, является ли строка хорошей, в игре используются правила. Их всего n штук. Каждое правило описывается тройкой (p, l, r), где p — строка, а l и r (l ≤ r) — целые числа. Будем говорить, что строка t удовлетворяет правилу (p, l, r), если количество вхождений строки t в строку p лежит в пределах от l до r включительно. Например, строка «ab», удовлетворяет правилам («ab», 1, 2) и («aab», 0, 1), но не удовлетворяет правилам («cd», 1, 2) и («abab», 0, 1).
Подстрокой s[l... r] (1 ≤ l ≤ r ≤ |s|) строки s = s1s2... s|s| (где |s| — длина строки s) называется строка slsl + 1... sr.
Будем считать, что количество вхождений строки t в строку p — это количество пар целых чисел l, r (1 ≤ l ≤ r ≤ |p|) таких, что p[l... r] = t.
Будем говорить, что строка t является хорошей, если она удовлетворяет всем n правилам. Умный Бобер просит вас помочь ему в написании программы, которая будет вычислять количество различных хороших подстрок строки s. Две подстроки s[x... y] и s[z... w] считаются различными, если s[x... y] ≠ s[z... w].
Первая строка содержит строку s. Вторая строка содержит целое число n. Следующие n строк содержат правила по одному в строке. Каждая из этих строк содержит строку и два целых числа pi, li, ri, разделенные единичными пробелами (0 ≤ li ≤ ri ≤ |pi|). Гарантируется, что все заданные строки непустые и содержат только строчные латинские буквы.
Ограничения на входные данные для получения 30 баллов (подзадача G1):
Ограничения на входные данные для получения 70 баллов (подзадачи G1+G2):
Ограничения на входные данные для получения 100 баллов (подзадачи G1+G2+G3):
Выведите ровно одно целое число — количество различных хороших подстрок строки s.
aaab
2
aa 0 0
aab 1 1
3
ltntlnen
3
n 0 0
ttlneenl 1 4
lelllt 1 1
2
a
0
1
В первом тестовом примере подходят подстроки «aab», «ab» и «b».
Во втором тестовом примере «e» и «t».
Название |
---|