给定空字符串S,执行以下Q次操作:
每次操作形式:
0 c 表示在S之前加字符c;
1 c 表示在S之后加字符c;
2 t 询问t是否是S的一个带余周期,(设当前S长度为len,对任意0<=i<=len-t-1, 都满足s[i] == s[i+t])
3 询问S是否是回文串;
多组测试数据,每组测试数据中:
第一行一个整数Q,代表有Q次操作Q ∈ [1,1000000]。
接下来Q行输入采用加密方式给出,给定一个初始为"11"的字符串F,每次输出答案为"Yes"时往F后添加字符"1",答案为"No"时往字符串后添加"0"。在每次操作读入中,先给出一个值p1(0<=p1<=3),取当前字符串F后两位作为二进制数并转成十进制值p2(0<=p2<=3),该次操作类型 p=p1⊕p2。若操作类型为0或1,再给出字符c (保证字符范围为小写字母),若操作类型为2,再给出询问周期t,(0<=t<当前字符串长度)。
数据保证操作2和3执行时字符串不为空串。
对于每组测试数据:
输出有多行,每行按输入顺序对应一个操作类型2或3,若是则输出"Yes",若否则输出"No"。
11 2 b 3 a 2 a 0 3 b 1 2 3 a 1 3 3 b 1 2 4
Yes Yes No No Yes