AT_joi2023_yo2_e.日本沈没 2 (Japan Sinks 2)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
日本列岛是一个东西向狭长的群岛。日本列岛被南北方向的分界线分成 N 个区块。区块从西到东依次编号为 1 到 N。现在,第 i 个区块(1≤i≤N)的海拔为 Aim。
在日本列岛上经常会发生暴风雨。每当暴风雨来临时,海浪会导致各区块的海拔按如下方式降低:
- 对于强度为 x 的西风暴风雨,在从西数不超过 x 个的区块中,所有“在其西侧不存在比自身海拔更高的区块”的区块,其海拔都会减少 1m。即,若暴风雨发生前第 i 个区块的海拔为 ai,只有当 i≤x,并且对所有满足 1≤k<i 的 k ,ak≤ai,此时第 i 个区块海拔减少 1m,否则保持不变。
- 对于强度为 x 的东风暴风雨,在从东数不超过 x 个的区块中,所有“在其东侧不存在比自身海拔更高的区块”的区块,其海拔都会减少 1m。即,若暴风雨发生前第 i 个区块的海拔为 ai,只有当 i≥N−x+1,并且对所有满足 i<k≤N 的 k,ak≤ai,此时第 i 个区块海拔减少 1m,否则保持不变。
你需要模拟接下来 Q 天内发生的事件。第 j 天(1≤j≤Q)发生如下事件之一:
- 若 Tj=1,则发生一次强度为 Xj 的西风暴风雨。
- 若 Tj=2,则发生一次强度为 Xj 的东风暴风雨。
- 若 Tj=3,则需要报告此时第 Xj 个区块的海拔。
保证任何区块的海拔都不会变成负数。
给定每个区块当前的海拔和接下来 Q 天的事件,请写程序,对于每一个 Tj=3 的那一天,输出指定区块的当前海拔。
输入格式
输入格式如下:
N Q A1 A2 … AN T1 X1 T2 X2 ⋮ TQ XQ
输出格式
对于每一个 Tj=3 的 j(1≤j≤Q),按顺序每行输出第 j 天时指定区块的海拔(单位:m)。
输入输出样例
输入#1
5 7 7 7 7 7 7 1 3 1 1 3 1 2 1 2 5 3 2 3 4
输出#1
5 6 6
输入#2
5 7 10 13 14 7 12 1 5 2 5 3 3 3 4 2 5 3 1 3 2
输出#2
12 7 9 11
输入#3
5 6 8 6 7 8 9 1 1 3 1 3 5 1 3 3 2 3 3
输出#3
7 9 6 6
输入#4
5 6 6 8 6 9 7 2 1 2 4 3 5 1 5 3 4 3 3
输出#4
5 7 6
说明/提示
子任务
1.(5 分)N≤2000,Q≤2000。
2.(27 分)若 Tj=3,则 Xj=N(1≤j≤Q)。
3.(28 分)A1=A2=⋯=AN=Q。
4.(20 分)不存在 Tj=2(1≤j≤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≤N≤300000。
- 1≤Q≤300000。
- Q≤Ai≤109(1≤i≤N)。
- 1≤Tj≤3(1≤j≤Q)。
- 1≤Xj≤N(1≤j≤Q)。
- 输入数据均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?