提高⏱ 1000ms💾 256MB#P8012

题目描述

给定一个初始长度为 $n$ 的序列与 $q$ 次操作:操作一,在序列末尾追加整数 $x$;操作二,查询当前序列第 $l$ 到第 $r$ 个元素中第 $k$ 小的值(相同数值按出现次数计)。请用分块加二分等高效方法。

输入格式

第一行两个整数 $n,q$;第二行 $n$ 个整数;接下来 $q$ 行每行形如 1 x2 l r k

输出格式

对每个操作二输出一行一个整数。

数据范围

$$1 \le n \le 5\times 10^4,\ 1 \le q \le 5\times 10^4,\ |x| \le 10^9$$

样例输入 #1
4 4
3 -1 4 -1
2 1 4 2
1 9
2 1 5 3
2 2 2 1
样例输出 #1
-1
3
-1
样例输入 #2
3 2
5 5 5
1 5
2 1 4 4
样例输出 #2
5