#12763. 能量日志回放系统
能量日志回放系统
能量日志回放系统
题目描述
你正在维护一条长度为 n 的能量轨道,第 i 个位置的能量值记为 a[i]。
系统会不断产生操作日志,你需要 按照输入顺序实时处理这些日志,并在需要时立即输出查询结果。
日志共有两种类型:
操作 1 l r v
表示一次 范围校准事件:
将区间 [l, r] 内所有位置的能量值 **同时增加 v**(v 可能为负数)。
操作 2 x
表示一次 瞬时检测:
需要 立刻输出当前位置 x 的当前能量值。
注意:
- 所有操作必须 按顺序执行。
- 每次查询结果都依赖于之前所有操作。
- 由于数据规模较大,直接对区间逐个修改会导致程序超时。
输入格式
第一行输入两个整数:
n q
表示轨道长度和操作数量。
第二行输入 n 个整数:
a1 a2 ... an
表示初始能量值。
接下来 q 行,每行表示一条操作日志:
1 l r v
或
2 x
输出格式
对于每一条 2 x 操作,输出一行一个整数,表示当时 a[x] 的值。
数据范围
1 ≤ n, q ≤ 200000
1 ≤ l ≤ r ≤ n
1 ≤ x ≤ n
-10^9 ≤ v ≤ 10^9
初始数组与中间结果可能超过 32 位整数范围,请使用 long long。
样例输入
5 6
1 2 3 4 5
2 3
1 2 4 10
2 3
1 1 5 -3
2 1
2 5
样例输出
3
13
-2
2
样例解释
初始数组
[1, 2, 3, 4, 5]
操作 2 3
a[3] = 3
操作 1 2 4 10
[1, 12, 13, 14, 5]
操作 2 3
a[3] = 13
操作 1 1 5 -3
[-2, 9, 10, 11, 2]
操作 2 1
a[1] = -2
操作 2 5
a[5] = 2