U535960 【模板】撤销RMQ
题目背景
模板题,无背景。
题目描述
已知一个数列 $\{a_i\}$,你需要进行下面三种操作:
1. 将某区间每一个数对 $x
$ 取 $\max$。
2. 求出某区间所有数的 $\max$。
3. 撤销某一个 1 操作。
**请注意本题的空间限制。**
输入格式
第一行包含两个整数 $n, m$,分别表示该数列数字的个数和操作的总个数。
第二行包含 $n$ 个用空格分隔的整数 $a_i$,其中第 $i$ 个数字表示数列第 $i$ 项的初始值。
接下来 $m$ 行每行包含 $2-4$ 个整数,表示一个操作,具体如下:
1. `1 l r x`:将区间 $[l,r]$ 内每个数对 $x
$ 取 $\max$。
2. `2 l r`:输出区间 $[l, r]$ 内所有数的 $\max$。
3. `3 x`:撤销第 $x$ 次操作。特别地,保证该操作为 1 操作,且每个 1 操作只会被撤销 1 次。
输出格式
输出包含若干行整数,即所有操作 2 的结果。
说明/提示
对于 $30\%$ 的数据:$1 \le n,m \le {10}^4$。
对于 $60\%$ 的数据:$1 \le n,m \le {10}^5$。
对于 $100\%$ 的数据:$1 \le n, m \le 3 \times{10}^5$,输入中不存在非正数,所有数都在合理的范围内且不超过 `int` 上限。