#P50816. 「NOI2018」你的名字

「NOI2018」你的名字

题目描述

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

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

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

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

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

输入格式

从文件 name.in 读入数据。

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

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

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

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

输出格式

输出到文件 name.out 中。

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

样例

scbamgepe
3
smape 2 7
sbape 3 8
sgepe 1 9
12
10
4

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

数据范围与提示

测试点 S\lvert S \rvert \leq QQ \leq T\sum \lvert T \rvert \leq 询问限制 其他限制
1 200200 200200 4000040000 对于所有询问有 l=1,r=Sl = 1, r = \lvert S \rvert T200\lvert T \rvert \leq 200
2 10001000
3
4 5×1055 \times 10^5
5
6 5×1055 \times 10^5 11
7
8 10510^5 10510^5 2×1052 \times 10^5
9 字符串随机
10 2×1052 \times 10^5 4×1054 \times 10^5
11 字符串随机
12 3×1053 \times 10^5 6×1056 \times 10^5
13 字符串随机
14 4×1054 \times 10^5 8×1058 \times 10^5
15 字符串随机
16 5×1055 \times 10^5 10610^6
17 字符串随机
18 2×1052 \times 10^5
19 3×1053 \times 10^5
20 4×1054 \times 10^5
21 5×1055 \times 10^5
22
23
24
25

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