AT_jag2018summer_day2_i ADD DIV MAX RESTORE
题目描述
给定一个整数序列 $a_0, a_1, \ldots, a_{N-1}$。
你需要进行 $Q$ 次操作,每次操作为以下四种之一:
- `加法操作(ADD QUERY,t=0\ l\ r\ x)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 替换为 $a_i + x$。
- `除法操作(DIV QUERY,t=1\ l\ r\ x)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 替换为 $\mathrm{floor}(a_i / x)$,其中 $\mathrm{floor}(y)$ 表示不大于 $y$ 的最大整数。
- `区间最大值查询(MAX QUERY,t=2\ l\ r\ x=0)`:输出 $\max(a_l, a_{l+1}, \ldots, a_r)$。
- `还原操作(RESTORE QUERY,t=3\ l\ r\ x=0)`:对于每个 $i$ 满足 $l \leq i \leq r$,将 $a_i$ 还原为输入时的初始值。
输入格式
输入从标准输入读入,格式如下:
> $N\ Q\ a_0\ a_1\ \ldots\ a_{N-1}\ t_1\ l_1\ r_1\ x_1\ t_2\ l_2\ r_2\ x_2\ \ldots\ t_Q\ l_Q\ r_Q\ x_Q$
输出格式
对于每个 `MAX QUERY` 操作,输出对应区间的最大值,每行一个结果。
说明/提示
### 数据范围
- 所有输入值均为整数。
- $1 \leq N, Q \leq 200,\!000$
- $0 \leq a_i \leq 10^8$
- $t_i = 0, 1, 2, 3$
- $0 \leq l_i \leq r_i \leq N-1$
- $1 \leq x_i \leq 1000$(当 $t_i \neq 2, 3$ 时)
### 样例说明 1
- $\max(1, 2, 3, 4, 5) = 5$
- $1, 2, 3, 4, 5 \to 11, 12, 3, 4, 5$
- $\max(11, 12, 3, 4, 5) = 12$
- $\max(3) = 3$
- $11, 12, 3, 4, 5 \to 2, 3, 3, 4, 5$
- $\max(2) = 2$
- $\max(3) = 3$
- 数组还原为 $1, 2, 3, 4, 5$
- $\max(1, 2) = 2$
由 ChatGPT 4.1 翻译