3436 - Ancestor 先辈
时间限制 : 1 秒
内存限制 : 512 MB
对于两个序列 a,b,如果满足:
\forall i \leq \min(n,m),s.t.\ a_i \leq b_i
那么我们称 a 比 b 屑(n 为 a 的长度,m 为 b 的长度)。
如果对于一个序列 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,3] 是否为先辈,不是,输出
No
。 - 区间 [3,4] 加上 9,现在序列为 {1,9,10,18,8,1,0}。
- 询问区间 [1,4] 是否为先辈,是,输出
Yes
。 - 区间 [5,6] 加上 11,现在序列为 {1,9,10,18,19,12,0}。
- 询问区间 [2,6] 是否为先辈,不是,输出
No
。
对于 100\% 的数据,1 \le n,k \le 10^6,|a_i|,|x| \le 10^9。