AT_joi2023_yo2_e 日本沈没 2 (Japan Sinks 2)

题目描述

日本列岛是一个东西向狭长的群岛。日本列岛被南北方向的分界线分成 $N$ 个区块。区块从西到东依次编号为 $1$ 到 $N$。现在,第 $i$ 个区块($1 \leq i \leq N$)的海拔为 $A_i\:\mathrm{m}$。 在日本列岛上经常会发生暴风雨。每当暴风雨来临时,海浪会导致各区块的海拔按如下方式降低: - 对于强度为 $x$ 的**西风暴风雨**,在从西数不超过 $x$ 个的区块中,所有“在其西侧不存在比自身海拔更高的区块”的区块,其海拔都会减少 $1\:\mathrm{m}$。即,若暴风雨发生前第 $i$ 个区块的海拔为 $a_i$,只有当 $i \leq x$,并且对所有满足 $1 \leq k < i$ 的 $k$ ,$a_k \leq a_i$,此时第 $i$ 个区块海拔减少 $1\:\mathrm{m}$,否则保持不变。 - 对于强度为 $x$ 的**东风暴风雨**,在从东数不超过 $x$ 个的区块中,所有“在其东侧不存在比自身海拔更高的区块”的区块,其海拔都会减少 $1\:\mathrm{m}$。即,若暴风雨发生前第 $i$ 个区块的海拔为 $a_i$,只有当 $i \geq N - x + 1$,并且对所有满足 $i < k \leq N$ 的 $k$,$a_k \leq a_i$,此时第 $i$ 个区块海拔减少 $1\:\mathrm{m}$,否则保持不变。 你需要模拟接下来 $Q$ 天内发生的事件。第 $j$ 天($1 \leq j \leq Q$)发生如下事件之一: - 若 $T_j = 1$,则发生一次强度为 $X_j$ 的西风暴风雨。 - 若 $T_j = 2$,则发生一次强度为 $X_j$ 的东风暴风雨。 - 若 $T_j = 3$,则需要报告此时第 $X_j$ 个区块的海拔。 保证任何区块的海拔都不会变成负数。 给定每个区块当前的海拔和接下来 $Q$ 天的事件,请写程序,对于每一个 $T_j = 3$ 的那一天,输出指定区块的当前海拔。

输入格式

输入格式如下: > $N$ $Q$ $A_1$ $A_2$ $\dots$ $A_N$ $T_1$ $X_1$ $T_2$ $X_2$ $\vdots$ $T_Q$ $X_Q$

输出格式

对于每一个 $T_j = 3$ 的 $j$($1 \leq j \leq Q$),按顺序每行输出第 $j$ 天时指定区块的海拔(单位:$\mathrm{m}$)。

说明/提示

## 子任务 1.($5$ 分)$N \leq 2\,000$,$Q \leq 2\,000$。 2.($27$ 分)若 $T_j \neq 3$,则 $X_j = N$($1 \leq j \leq Q$)。 3.($28$ 分)$A_1 = A_2 = \cdots = A_N = Q$。 4.($20$ 分)不存在 $T_j = 2$($1 \leq j \leq Q$)。 5.($20$ 分)无其他额外限制。 ## 样例解释 1 区块 $1,2,3,4,5$ 的海拔 $[m]$ | 事件 | 处理后各区块海拔 | | ----------- | ---------------------- | | 初始 | $7, 7, 7, 7, 7$ | | 第1天 持续强度为3的西风暴风雨 | 西面前3个区块中,没有更西侧比本身更高的区块的是 1,2,3 区块 → $6, 6, 6, 7, 7$ | | 第2天 持续强度为1的西风暴风雨 | 西面第1个区块中,没有更西侧比本身更高的区块是 1 区块 → $5, 6, 6, 7, 7$ | | 第3天 查询1号区块的海拔 | $5$ | | 第4天 持续强度为1的东风暴风雨 | 东面第1个区块中,没有更东侧比本身更高的区块是 5 区块 → $5, 6, 6, 7, 6$ | | 第5天 持续强度为5的东风暴风雨 | 东面前5个区块中,没有更东侧比本身更高的区块是 4,5 区块 → $5, 6, 6, 6, 5$ | | 第6天 查询2号区块的海拔 | $6$ | | 第7天 查询4号区块的海拔 | $6$ | 本样例满足子任务 $1, 3, 5$ 的限制条件。 ## 样例解释 2 本样例满足子任务 $1, 2, 5$ 的限制条件。 ## 样例解释 3 本样例满足子任务 $1, 4, 5$ 的限制条件。 ## 样例解释 4 本样例满足子任务 $1, 5$ 的限制条件。 # 数据范围与限制 - $1 \leq N \leq 300\,000$。 - $1 \leq Q \leq 300\,000$。 - $Q \leq A_i \leq 10^9$($1 \leq i \leq N$)。 - $1 \leq T_j \leq 3$($1 \leq j \leq Q$)。 - $1 \leq X_j \leq N$($1 \leq j \leq Q$)。 - 输入数据均为整数。 由 ChatGPT 5 翻译