#6724. 天气温度变化

天气温度变化

天气温度变化

题目描述

某地区连续记录了 n 天的天气温度。

i 天初始温度为:

aia_i

天气系统需要支持实时修改和查询。

系统有两种操作:


操作类型 1:区间升温

输入:

0 l r x

表示:

未来第 l 天到第 r 天温度全部升高 x 度。

即:

对于所有:

lirl \le i \le r

执行:

ai=ai+xa_i=a_i+x


操作类型 2:查询温度

输入:

1 p

表示:

查询第 p 天当前温度。


请你编写程序,帮助天气系统完成所有操作。


输入格式

第一行包含两个整数:

n q

表示:

  • n:天数
  • q:操作次数

第二行包含 n 个整数:

a1 a2 ... an

表示每天初始温度。

接下来 q 行,每行一个操作:

如果操作为:

0 l r x

表示:

l 天到第 r 天温度增加 x

如果操作为:

1 p

表示:

查询第 p 天温度。


输出格式

对于每一次查询操作:

1 p

输出一行答案。


数据范围

对于所有测试数据:

1 ≤ n,q ≤ 500000
-10^9 ≤ a[i],x ≤ 10^9
1 ≤ l ≤ r ≤ n
1 ≤ p ≤ n

保证所有答案均在 long long 范围内。


输入样例

5 5
10 20 30 40 50
0 2 4 10
1 3
0 1 5 5
1 1
1 5

输出样例

40
15
55

样例解释

初始温度:

第几天:
1   2   3   4   5

温度:
10  20  30  40  50

第一次操作

输入:

0 2 4 10

表示:

第 2 天到第 4 天增加 10 度。

变化:

10 30 40 50 50

查询:

1 3

第 3 天:

40

输出:

40

第二次操作

输入:

0 1 5 5

所有天增加 5 度:

变化:

15 35 45 55 55

查询:

1 1

输出:

15

查询:

1 5

输出:

55
测试点编号 n 上限 q 上限 难度层级 特殊性质 主要覆盖点
1 5 弱数据 最小规模、单点反复修改 n=1l=r=1、正负更新后的查询
2 5 3 只有查询 初始差分建树是否正确,首尾位置查询
3 6 8 单点修改 l=r、首位和末位单点更新、未修改点查询
4 8 10 正常数据 整段更新、重叠抵消 [1,n] 更新、r+1 越界保护、重叠区间
5 7 初值有负数 负数初值、正负区间增量、尾段更新
6 10 13 相邻区间和交界点 相邻区间、跨边界更新、交界点查询
7 5 10 正常偏强 大整数 long long 范围内的大正负数和大幅更新
8 12 13 初始数组强烈波动 差分初始化、非单调数组、多层重叠更新
9 50 18 强数据 中等规模混合操作 多次区间修改、边界单点、重复查询
10 500000 21 极限数据 最大 n、稀疏操作 首尾边界、超大单点值、长区间更新