3436 - Ancestor 先辈

通过次数

3

提交次数

10

时间限制 : 1 秒
内存限制 : 512 MB

对于两个序列 a,b,如果满足:

\forall i \leq \min(n,m),s.t.\ a_i \leq b_i

那么我们称 ab 屑(na 的长度,mb 的长度)。

如果对于一个序列 a,它比它的所有后缀都屑,那么我们称这个序列为先辈。

给定一个长为 n 的序列 a_i,共有 k 次操作,包括以下两种:

  • 1 l r x 区间 [l,r] 加上 x
  • 2 l r 查询区间 [l,r] 是不是先辈。

输入

第一行两个整数 n,k 代表序列长度与操作数。
第二行 n 个整数 a_i 代表数列每一项的值。
接下来 k 行每行首先三个整数 opt,l,r

  • 如果 opt=1,接下来一个整数 x 代表操作 1
  • 如果 opt=2,代表操作 2

由于数据故障,r 可能取到 n+1,请在这类情况下自行令 r=n,谢谢。

输出

对于每个操作 2,输出询问结果。

样例

输入

7 5
1 9 1 9 8 1 0
2 1 3
1 3 4 9
2 1 4
1 5 6 11
2 2 6

输出

No
Yes
No

提示

样例说明

对于样例 1

  1. 询问区间 [1,3] 是否为先辈,不是,输出 No
  2. 区间 [3,4] 加上 9,现在序列为 {1,9,10,18,8,1,0}
  3. 询问区间 [1,4] 是否为先辈,是,输出 Yes
  4. 区间 [5,6] 加上 11,现在序列为 {1,9,10,18,19,12,0}
  5. 询问区间 [2,6] 是否为先辈,不是,输出 No

对于 100\% 的数据,1 \le n,k \le 10^6|a_i|,|x| \le 10^9