luogu#B4014. [语言月赛 202407] respect

[语言月赛 202407] respect

题目背景

从前有个荣光的王国,小 A 是里面的国王,他认为人活着要有尊严,今天他要赐予他的子民以尊严。

题目描述

小 A 认为,当一个人被尊重时,他便是有尊严的。

现在小 A 对小 B 说了 nn 句话,每句话可以被视作为不含空格且全是小写字母的字符串。

每句话是由若干个单词构成的。虽然我们把这些单词直接拼接成了字符串,但是句子的语义还是和单词本身相关。对于一个字符串 ss,我们会给出一个划分序列 p1,p2,,pkp_1, p_2, \dots, p_k,满足 1p1p2pk<s1 \leq p_1 \leq p_2 \leq \dots \leq p_k <|s|,则我们认为 ss 这句话中,$[1, p_1], [p_1+1,p_2], [p_2+1,p_3],\dots [p_k + 1, |s|]$ 这 k+1k+1 段每一段都是一个单词。特别的,如果 k=0k=0,说明这个句子本身就是一个单词。

例如,对字符串 irespectyou\texttt{irespectyou},如果给出的序列 pp1,81,8 则这个字符串有 i\texttt{i}respect\texttt{respect}you\texttt{you} 三个单词;如果序列 pp2,5,72, 5,7,则这个字符串有 ir\texttt{ir}esp\texttt{esp}ec\texttt{ec}tyou\texttt{tyou} 四个单词构成。

对于一个字符串 xx,我们称一个字符串 yyxx 的子串,当且仅当将 xx 在开头和结尾删去若干个(可以为 00 个)字符后得到的字符串和 yy 相等。例如 uog\texttt{uog}luogu\texttt{luogu} 的子串,但 ug\texttt{ug} 不是 luogu\texttt{luogu} 的子串。

现在,给出这 nn 句话,对于每句话,你要求出这句话里有多少个单词含有子串 respect\texttt{respect}

输入格式

第一行是一个整数 nn,表示句子的数量。

接下来 3n3n 行,每三行一组,表示小 A 对小 B 说的一句话:

  • 每组第一行是一个字符串 ss 表示这句话。
  • 第二行是一个整数 kk 表示划分序列的长度。
  • 第三行是 kk 个整数 p1,p2,,pkp_1, p_2, \dots, p_k 表示划分序列。

注意,如果 k=0k=0,输入仍在每组数据的第三行有一个空行。

输出格式

输出 nn 行。

对每个句子,输出一行一个整数表示其含有子串 respect\texttt{respect} 的单词数量。

2
irespectyou
2
1 8
herespectsyou
2
2 10

1
1

1
respect
0


1

提示

数据规模与约定

  • 对于 30%30\% 的数据,划分出的子串的长度 7\leq 7
  • 对于 60%60\% 的数据,不存在一个单词不是 respect\texttt{respect} 且以 respect\texttt{respect} 为子串。
  • 对于 100%100\% 的数据,1n1031 \leq n \leq 10^31p1p2pk<s1 \leq p_1 \leq p_2 \leq \dots \leq p_k < |s|k0k \geq 0,输入字符串仅含有小写英文字母,字符串长度不超过 10310^3