SIMD12D.文本编辑器

传统题 时间 1500 ms 内存 256 MiB 9 尝试 24 已通过 4 标签

文本编辑器

题目描述

一个文本编辑器当前保存着仅由小写英文字母组成的字符串。字符位置从 11 开始编号。你需要按顺序执行编辑指令,并回答子串比较询问。

  • INS p s:在当前字符串的前 pp 个字符之后插入字符串 ss。当 p=0p=0 时插入到开头。
  • DEL l r:删除当前第 ll 到第 rr 个字符。
  • REV l r:将当前第 ll 到第 rr 个字符整体翻转。
  • CUT l r p:剪下当前第 ll 到第 rr 个字符,先从原串删除;再将剪下的字符串插入到删除后字符串的前 pp 个字符之后。这里的 pp 是按删除后的字符串计算的,允许为 00
  • Q l_1 r_1 l_2 r_2:比较当前两个闭区间子串是否完全相同;长度不同也视为不同。

所有操作参数均保证合法。初始字符串长度与全部 INS 指令中插入字符串长度之和不超过 200000200000。请输出每次询问的答案。

输入格式

第一行一个非空字符串 ss,表示初始文本。

第二行一个整数 qq1q2000001 \le q \le 200000),表示指令数。

接下来 qq 行,每行一条指令。所有字符串仅含小写英文字母,且每个 INS 指令中的字符串非空;执行过程中当前字符串长度始终不超过 200000200000

输出格式

对每条 Q 指令输出一行。若两个子串完全相同,输出 YES;否则输出 NO

样例

样例 1

输入:

abcde
8
Q 1 3 3 5
REV 2 4
INS 2 zz
Q 3 4 3 4
CUT 3 4 1
Q 1 2 6 7
DEL 2 3
Q 1 2 4 5

输出:

NO
YES
NO
NO

在线编程 IDE

建议全屏模式获得最佳体验