#abc285f. [abc285_f]Substring of Sorted String

[abc285_f]Substring of Sorted String

题目描述

给定一个长度为 NN 的由小写英文字母组成的字符串 SS,以及 QQ 个查询。按照顺序处理这些查询。

每个查询有以下两种类型之一:

  • 1 x c:将 SS 的第 xx 个字符替换为字符 cc
  • 2 l r:令 TT 为按升序排序的 SS 的字符组成的字符串。如果 SS 的第 ll 到第 rr 个字符组成的字符串是 TT 的子串,则打印 Yes;否则打印 No

什么是子串?子串是由 SS 的前 00 或多个字符和后 00 或多个字符移除后得到的字符串。例如,ababc 的子串,而 ac 不是 abc 的子串。

约束条件

  • 1N1051 \leq N \leq 10^5
  • SS 是长度为 NN 的由小写英文字母组成的字符串。
  • 1Q1051 \leq Q \leq 10^5
  • 对于第一种查询,1xN1 \leq x \leq N
  • 对于第一种查询,cc 是小写英文字母。
  • 对于第二种查询,1lrN1 \leq l \leq r \leq N

输入

从标准输入读入数据,输入格式如下:

NN SS QQ query1query_1 query2query_2 \vdots queryQquery_Q

输出

按照题目描述处理查询。

示例输入1

6
abcdcf
4
2 1 3
2 2 6
1 5 e
2 2 6

示例输出1

Yes
No
Yes
  • 在第一个查询中,abccdf 是按升序排序的 SS 的字符串 TT。由于 SS 的第 1 到第 3 个字符组成的字符串是 TT 的子串,因此应该打印 Yes
  • 在第二个查询中,abccdf 是按升序排序的 SS 的字符串 TT。由于 SS 的第 2 到第 6 个字符组成的字符串不是 TT 的子串,因此应该打印 No
  • 第三个查询将 SS 的第 5 个字符设为 e,使得 SS 变为 abcdef
  • 在第四个查询中,abcdef 是按升序排序的 SS 的字符串 TT。由于 SS 的第 2 到第 6 个字符组成的字符串是 TT 的子串,因此应该打印 Yes