由乃不太会打扑克
所以她出了一个数据结构题
给你一个长为 n 的序列 a,需要支持 m 次操作,操作有两种:
- 查询区间 [l,r] 的第 k 小值。
- 区间 [l,r] 加上 k。
输入格式
一行两个整数 n,m。
接下来一行 n 个整数, 第 i 个整数表示 ai。
接下来 m 行,每行四个数 opt,l,r,k,其中 opt 代表是哪种操作。
输出格式
对于每个询问输出一个数表示答案,如果无解输出 −1。
样例数据
样例输入
1 1
1
1 1 1 1
样例输出
1
子任务
Idea:nzhtl1477,
Solution:nzhtl1477( O(msqrtn(Δ+logn)) ) solution,ccz181078( O(msqrt(nlogn)) ) solution
Code:nzhtl1477( O(msqrtn(Δ+logn)) ) code,ccz181078( O(msqrtnlogn) ) code
,Data:nzhtl1477
1≤n,m≤105,−2×104≤ 每次加上的数和原序列的数 ≤2×104。