#L3520. 「JOI Open 2021」杂交

「JOI Open 2021」杂交

题目描述

译自 JOI Open 2021 T1 「交配 / Crossing」

你知道「净是一些奇怪研究实验室」(Just Odd Investigations Laboratory)吗?这个实验室的业务就是去做「奇怪的研究」的。接下来我们简称其为 JOI 实验室

最近几年,在世界各地的几个历史遗迹发现了盛开的大片花田。JOI 实验室发现花田中的花是新品种,并且它们的基因有相似的特征。这些新品种的花的基因是长度为 NN 且由 J, O, I 组成的字符串。这些字符串被称为 基因序列

你是在 JOI 实验室工作的研究员。你最初有三朵新品种的花,它们的基因序列分别为 SAS_A, SBS_B, SCS_C

你可以通过杂交的方式,让两朵新品种的花产生一种新品种的花。新得到的花的基因序列中第 ii 个字母按如下方式确定:

  • 如果两朵花的基因序列中第 ii 个字母是一样的,新得到的花的基因序列中第 ii 个字母将会和两亲本第 ii 个字母一致;
  • 如果两朵花的基因序列中第 ii 个字母是不一样的,新得到的花的基因序列中第 ii 个字母将会是 J, O, I 中的一个,并和两亲本第 ii 个字母都不一样;

换句话说,如果两朵花基因序列的第 ii 个字母分别为 c1c_1c2c_2,新得到的花朵的基因序列中第 ii 个字母 c3c_3 如下表所示:

c1c_1 J\texttt{J} O\texttt{O} I\texttt{I}
c2c_2 J\texttt{J} O\texttt{O} I\texttt{I} J\texttt{J} O\texttt{O} I\texttt{I} J\texttt{J} O\texttt{O} I\texttt{I}
c3c_3 I\texttt{I} O\texttt{O} I\texttt{I} J\texttt{J} O\texttt{O} J\texttt{J}

你可以用相同的花朵杂交任意多次。如果你得到了一种新的花朵,你可以在随后的杂交中使用。

为了获得更多好看的花朵,JOI 实验室提出了 (Q+1)(Q+1) 个基因序列,它们从 00QQ 编号,并给了你一个描述这些候选基因序列的表。这个表包含一个字符串 T0T_0 和整数 LjL_j, RjR_j 和字符 CjC_j(这里 1jQ1 \le j \le Q)。候选基因序列按如下规则给出:

  • 候选基因序列 00T0T_0
  • 候选基因序列 j (1jQ)j\ (1\le j\le Q) 是把候选基因序列 j1j-1 中从第 LjL_j 到第 RjR_j 个位置的字符全部替换为 CjC_j 得到的。

给定整数 NN 和初始三朵花的基因序列,以及描述候选基因序列的表,你需要写一个程序确定对于每一个候选基因序列,是否可以通过初始三朵花杂交零次及以上获得。


输入格式

第一行一个正整数 NN

接下来三行,每行一个长度为 NN 的字符串,分别为 SAS_A, SBS_B, SCS_C

接下来一行一个正整数 QQ

接下来一行一个长为 NN 的字符串 T0T_0

接下来 QQ 行,每行两个整数和一个字符 LjL_j, RjR_j, CjC_j


输出格式

输出 (Q+1)(Q+1) 行到标准输出。对于第 (j+1) (0jQ)(j+1)\ (0\le j\le Q) 行,如果可以通过初始三朵花杂交零次及以上获得候选基因序列 jj,则输出 Yes,否则输出 No


样例 1

输入

4
JOJO
JJOI
OJOO
3
IJOJ
1 4 O
2 2 J
2 4 I

输出

Yes
No
Yes
Yes

解释

初始的三个基因序列是 JOJO\texttt{JOJO}JJOI\texttt{JJOI}OJOO\texttt{OJOO}。下面是通过杂交获得的新品种花朵:

  • T0T_0IJOJ\texttt{IJOJ}。因为通过杂交 JJOI\texttt{JJOI}OJOO\texttt{OJOO} 可以获得,因此输出 Yes
  • T1T_1OOOO\texttt{OOOO}。因为无法通过杂交初始花朵有限次获得这个基因序列,因此输出 No
  • T2T_2OJOO\texttt{OJOO}。因为初始你就有这种花,不需要杂交,因此输出 Yes
  • T3T_3OIII\texttt{OIII}。你可以通过杂交 JJOI\texttt{JJOI}OJOO\texttt{OJOO} 获得 IJOJ\texttt{IJOJ},然后杂交 JOJO\texttt{JOJO}IJOJ\texttt{IJOJ} 就可以获得 OIII\texttt{OIII} 了,因此输出 Yes

这组样例输入满足子任务 3,4 的限制。


样例 2

输入

3
JOI
JOI
JOI
2
OJI
1 2 O
1 1 J

输出

No
No
Yes

解释

初始三朵花的基因序列只是 JOI\texttt{JOI}。你只能通过杂交获得 JOI\texttt{JOI} 一种基因序列。

  • T0T_0OJI\texttt{OJI}。因为无法通过杂交初始花朵有限次获得这个基因序列,因此输出 No
  • T1T_1OOI\texttt{OOI}。因为无法通过杂交初始花朵有限次获得这个基因序列,因此输出 No
  • T2T_2JOI\texttt{JOI}。你可以获得这种花朵,因此输出 Yes

这组样例满足子任务 1,2,3,4 的限制。


数据范围与提示

对于全部数据,满足:

  • 1N2×1051 \le N \le 2 \times 10^5
  • SAS_A, SBS_B, SCS_C, T0T_0 的长度均为 NN,并且只包含 J, O, I
  • 1Q2×1051 \le Q \le 2 \times 10^5
  • 1LjRjN (1jQ)1 \le L_j \le R_j \le N\ (1 \le j \le Q)
  • Cj (1jQ)C_j\ (1 \le j \le Q)J, O, I 中的一个

详细子任务附加条件及分值如下表所示:

子任务编号 附加限制 分值
1 SA=SB=SCS_A = S_B = S_C, N100N \le 100 3
2 SA=SB=SCS_A = S_B = S_C 23
3 N100N \le 100
4 无附加限制 51