枚举 · 例20-【模板】子序列自动机Ⅰ|子序列检查
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题转译自 [牛客小白月赛 12J] 月月查华华的手机

\hspace{15pt}对于给定的仅由小写字母构成的字符串 s ,检查其他 n 个字符串是否是 s子序列




\hspace{15pt}子序列为从原字符串中删除任意个(可以为零、可以为全部)字符得到的新字符串。

输入描述:

\hspace{15pt}第一行输入一个仅由小写字母构成的字符串 s ,长度不超过 10^6

\hspace{15pt}第二行输入一个整数 q \left(1 \leqq q \leqq 10^6\right) 代表待判断的字符串数量。

\hspace{15pt}此后 q 行,每行输入一个仅由小写字母构成的字符串 t ,长度不超过 10^6 ,代表一次询问。

\hspace{15pt}除此之外,保证全部字符串的长度之和不超过 2 \times 10^6

输出描述:

\hspace{15pt}对于每一次询问,如果 ts 的子序列,在单独的一行上输出 \rm{YES} ;否则,直接输出 \rm{NO}
示例1

输入

复制
noiauwfaurainairtqltqlmomomo
8
rain
air
tql
ntt
xiaobai
oiiiooo
orzcnzcnznb
ooooo

输出

复制
YES
YES
YES
YES
NO
YES
NO
NO
示例2

输入

复制
ciallo
4
co
i
ciallo
aill

输出

复制
YES
YES
YES
NO

说明

\hspace{15pt}对于第一次询问,\texttt{