#2720. 「NOI2018」你的名字

内存限制:1024 MiB 时间限制:4000 ms 输入文件:name.in 输出文件:name.out
题目类型:传统 评测方式:文本比较
上传者: cyand1317

题目描述

实力强大的小 A 被选为了 ION2018 的出题人,现在他需要解决题目的命名问题。

小 A 被选为了 ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外的工作都做好了。

由于 ION 已经举办了很多届,所以在题目命名上也是有规定的,ION 命题手册规定:每年由命题委员会规定一个小写字母字符串,我们称之为那一年的命名串,要求每道题的名字必须是那一年的命名串的一个非空连续子串,且不能和前一年的任何一道题目的名字相同

由于一些特殊的原因,小 A 不知道 ION2017 每道题的名字,但是他通过一些特殊手段得到了 ION2017 的命名串,现在小 A 有 Q 次询问:每次给定 ION2017 的命名串和 ION2018 的命名串,求有几种题目的命名,使得这个名字一定满足命题委员会的规定,即是 ION2018 的命名串的一个非空连续子串且一定不会和 ION2017 的任何一道题目的名字相同。

由于一些特殊原因,所有询问给出的 ION2017 的命名串都是某个串的连续子串,详细可见输入格式。

输入格式

从文件 name.in 读入数据。

第一行一个字符串 S ,之后询问给出的 ION2017 的命名串都是 S 的连续子串。

第二行一个正整数 Q ,表示询问次数。

接下来 Q 行,每行有一个字符串 T 和两个正整数 l, r ,表示询问如果 ION2017 的命名串是 S[l..r] ,ION2018 的命名串是 T 的话,有几种命名方式一定满足规定。

保证输入中给出的字符串都是由小写字母构成的。

输出格式

输出到文件 name.out 中。

输出 Q 行,第 i 行一个非负整数表示第 i 个询问的答案。

样例

样例输入 1

scbamgepe
3
smape 2 7
sbape 3 8
sgepe 1 9

样例输出 1

12
10
4

样例 2

见附加文件中的 name2.inname2.ans.

数据范围与提示

测试点 \lvert S \rvert \leq Q \leq \sum \lvert T \rvert \leq 询问限制 其他限制
1 200 200 40000 对于所有询问有 l = 1, r = \lvert S \rvert \lvert T \rvert \leq 200
2 1000
3
4 5 \times 10^5
5
6 5 \times 10^5 1
7
8 10^5 10^5 2 \times 10^5
9 字符串随机
10 2 \times 10^5 4 \times 10^5
11 字符串随机
12 3 \times 10^5 6 \times 10^5
13 字符串随机
14 4 \times 10^5 8 \times 10^5
15 字符串随机
16 5 \times 10^5 10^6
17 字符串随机
18 2 \times 10^5
19 3 \times 10^5
20 4 \times 10^5
21 5 \times 10^5
22
23
24
25

对于所有数据,保证 1 \leq l \leq r \leq \lvert S \rvert 1 \leq \lvert T \rvert \leq 5 \times 10^5