#P14301. [JOI2023 预选赛 R2] 日本沉没 2 / Japan Sinks 2

[JOI2023 预选赛 R2] 日本沉没 2 / Japan Sinks 2

题目描述

日本列岛是一条东西向狭长的群岛。日本列岛被南北方向的边界线划分为 NN 个区域,这些区域从西向东依次编号为 11NN。当前,区域 ii1iN1 \le i \le N)的海拔为 Ai mA_i\ \text{m}

日本列岛上时常刮起强风。强风会引起海浪,导致各区域的海拔按以下方式下降:

  • 当刮起强度为 xx 的西风时,在从西数起的 xx 个区域中,所有满足“其西侧不存在比自身海拔更高的区域”的区域,其海拔将减少 1 m1\ \text{m}。换言之,若风暴前区域 ii 的海拔为 aia_i,且满足 ixi \le x,并对所有满足 1k<i1 \le k < ikk 均有 akaia_k \le a_i,则区域 ii 的海拔减少 1 m1\ \text{m};其他情况下海拔不变。
  • 当刮起强度为 xx 的东风时,在从东数起的 xx 个区域中,所有满足“其东侧不存在比自身海拔更高的区域”的区域,其海拔将减少 1 m1\ \text{m}。换言之,若风暴前区域 ii 的海拔为 aia_i,且满足 iNx+1i \ge N - x + 1,并对所有满足 i<kNi < k \le Nkk 均有 akaia_k \le a_i,则区域 ii 的海拔减少 1 m1\ \text{m};其他情况下海拔不变。

你必须模拟未来 QQ 天内发生的事件。第 jj 天(1jQ1 \le j \le Q)将发生以下事件之一:

  • Tj=1T_j = 1,则刮起强度为 XjX_j 的西风。
  • Tj=2T_j = 2,则刮起强度为 XjX_j 的东风。
  • Tj=3T_j = 3,则报告此时区域 XjX_j 的海拔。

另外,根据约束条件,保证任意区域的海拔不会变为负数。

现给出当前各区域的海拔,以及未来 QQ 天内将发生的事件,请编写一个程序,针对所有 Tj=3T_j = 3 的日期,输出指定区域的海拔。

输入格式

输入数据按以下格式给出:

N QN\ Q

A1 A2  ANA_1\ A_2\ \cdots\ A_N

T1 X1T_1\ X_1

T2 X2T_2\ X_2

\vdots

TQ XQT_Q\ X_Q

输出格式

对于每一个满足 Tj=3T_j = 3jj1jQ1 \le j \le Q),请在一行中输出第 jj 天时区域 XjX_j 的海拔(单位:米),以整数形式表示。

5 7
7 7 7 7 7
1 3
1 1
3 1
2 1
2 5
3 2
3 4
5
6
6
5 7
10 13 14 7 12
1 5
2 5
3 3
3 4
2 5
3 1
3 2
12
7
9
11
5 6
8 6 7 8 9
1 1
3 1
3 5
1 3
3 2
3 3
7
9
6
6
5 6
6 8 6 9 7
2 1
2 4
3 5
1 5
3 4
3 3
5
7
6

提示

数据范围

  • 1N3000001 \le N \le 300\,000
  • 1Q3000001 \le Q \le 300\,000
  • QAi109Q \le A_i \le 10^91iN1 \le i \le N)。
  • 1Tj31 \le T_j \le 31jQ1 \le j \le Q)。
  • 1XjN1 \le X_j \le N1jQ1 \le j \le Q)。
  • 所有输入值均为整数。

子任务

  1. (5 分)N2000N \le 2\,000Q2000Q \le 2\,000
  2. (27 分)若 Tj3T_j \ne 3,则 Xj=NX_j = N1jQ1 \le j \le Q)。
  3. (28 分)A1=A2==AN=QA_1 = A_2 = \cdots = A_N = Q
  4. (20 分)Tj2T_j \ne 21jQ1 \le j \le Q)。
  5. (20 分)无额外约束。

翻译由 Qwen3-235B 完成。