#YHW2605. 猜数字

猜数字

猜数字


问题描述

给定长度为 nn 的数组 aa,接下来有 mm 次操作,每次操作是以下两种之一:

  1. 单点修改:将 aia_i 修改为 val
  2. 区间查询:询问区间 [l,r][l, r] 上是否存在数 xx

对于每个查询操作,输出 YesNo 表示是否存在。


输入格式

第一行输入用空格隔开的正整数 n,mn, m,分别表示数组 aa 的长度和操作次数。

第二行输入 nn 个整数,用空格隔开,表示数组 aa 的内容。

第三行至第 m+2m+2 行,每次输入以下两个中的一种:

  • 1 i val:表示将 aia_i 修改为 val,保证 1in1 \le i \le n
  • 2 l r x:表示询问区间 al,al+1,,ara_l, a_{l+1}, \dots, a_r 中是否存在数 xx

输出格式

对于每个第二种询问,如果询问的数存在,就输出 Yes,否则输出 No


样例

输入

5 5
1 2 3 4 5
2 2 3 3
1 3 2
2 1 4 3
2 4 5 2
2 1 2 1

输出

Yes
No
No
Yes

样例解释

  1. 第一次询问 a2,a3a_2, a_3 中是否有 33,结果是有的,输出 Yes
  2. 修改 a3a_322,原数组变为 1 2 2 4 5
  3. 第三次询问 a1,,a4a_1, \dots, a_4 中是否有 33,结果没有,输出 No
  4. 第四次询问 a4,a5a_4, a_5 中是否有 22,结果没有,输出 No
  5. 第五次询问 a1,a2a_1, a_2 中是否有 11,结果有,输出 Yes

数据范围与约定

  • 对于 20% 的数据:1n,m10001 \le n, m \le 1000
  • 对于 100% 的数据:$1 \le n, m \le 2 \times 10^5,\ 1 \le l \le r \le n,\ |a_i|, |val|, |x| \le 10^9$