#6625. 区间加法,单点查询(9)

区间加法,单点查询(9)

题目 9:区间加法,单点查询

题目描述

给定一个长度为 n 的数组,初始时所有元素都为 0

现在有 m 次操作:

1 l r x:将 a[l], a[l+1], ..., a[r] 全部增加 x
2 i:查询 a[i]

输入格式

第一行两个整数:

n m

接下来 m 行,每行一个操作。


输出格式

对于每个操作 2,输出一行答案。


数据范围

1 ≤ n, m ≤ 100000
1 ≤ l ≤ r ≤ n
1 ≤ i ≤ n
-10^9 ≤ x ≤ 10^9

样例输入

5 6
1 2 4 3
2 1
2 2
1 3 5 2
2 4
2 5

样例输出

0
3
5
2

样例解释

初始:

a = [0, 0, 0, 0, 0]

执行:

1 2 4 3

数组变为:

a = [0, 3, 3, 3, 0]

执行:

1 3 5 2

数组变为:

a = [0, 3, 5, 5, 2]

提示

可以维护差分数组 d

区间加法:

a[l..r] += x

等价于:

d[l] += x
d[r + 1] -= x

查询 a[i]

a[i] = d[1] + d[2] + ... + d[i]