P8947 Angels & Demons
题目背景
教皇内侍已经感觉到了身体上的疼痛。疼痛迅速传遍了全身,让他想抓想挠。
>不要忘记耶稣所遭受的痛苦。
他感觉喉咙中有种火烧火燎般的疼痛,就连吗啡都无法将之化解。
>我在这里的事情已经做完了。
他激起了人们的敬畏之心,人们又有了希望。
在帕利恩凹室里的时候,教皇内侍遵从上帝的教诲,举行了涂油仪式。他的身体上,发须上,面颊上,麻布长袍上,全身都涂满了灯油。他这会儿像是浸泡在神圣的绿色灯油中一样,气味芬芳,如母亲的体香,可却易燃烧。他将会幸运地升天。那是个充满奇迹而又迅速的过程。他留给世人的不再是丑闻……而是一股新的力量和奇迹。
他的手滑入长袍的口袋,摸出从帕利恩凹室里拿来的小小的金色打火机。
他低声说出了上帝在最后审判时说过的一句话。
>熊熊烈焰直冲云霄,上帝的天使也会在火焰中升天。
他的大拇指按在了打火机上。
人们还在圣彼得广场上唱着颂歌……
题目描述
给定 $n$ 个由小写字母组成的模板串 $S_{1...n}$,$q$ 组询问,询问分为以下两种类型:
1. `1 T`:给定一个由小写字母组成的询问串 $T$。
2. `2 p l r`:设 $num(p,l,r)$ 表示 $S_p$ 的 $[l,r]$ 子串是多少个询问串的子串,求 $\max\limits_{i=1}^{l}(num(p,i,r))$。
输入格式
第一行,两个数 $n,q,w_0$,其中 $w_0$ 表示数据类型。
* $w_0=0$:
第 $2\sim n+1$ 行,每行一个字符串,第 $i+1$ 行表示 $S_i$。
接下来 $q$ 行,每行一组询问,格式如题。
* $w_0=1$:
第二行,输入三个整数 $A,B,C$。
接下来 $n$ 行,每行一个字符串,表示一个模板串。
接下来,询问按照如下代码生成(代码中的 ```lst``` 表示上一次询问 $2$ 的答案,初始时为 $0$,```le[i]``` 表示模板串 $i$ 的长度,```s``` 是 char 数组):
```cpp
while (q--) {
int op;
scanf("%d", &op);
if (op == 1) {
scanf("%s", s + 1);
int x((1ll * A * lst + B) % C), l(strlen(s + 1));
for (int i(1); i r) swap(l, r);
// 此处更新 lst
}
}
```
输出格式
对于每个询问 $2$,输出一行一个整数表示答案。
说明/提示
对于 $100\%$ 数据:$1\le n,q\le 10^5$,$\sum\limits_{i=1}^{n}|S_i|\le5\times10^5$,$\sum|T|\le5\times10^5$,$1\le p\le n$,$w_0\in\{0,1\}$,$1\le A,B