#P0538. 单点加,区间求和(分块)

单点加,区间求和(分块)

题目描述

维护一个长度为 nn 的整数序列 a1,a2,,ana_1,a_2,\dots,a_n,处理 mm 个操作,每个操作为下列两种之一:

  • 1 x k:令 axax+ka_x \gets a_x + k
  • 2 l r:输出区间和 i=lrai\sum_{i=l}^{r} a_i

输入格式

第一行两个整数 n,mn,m

第二行 nn 个整数为序列初值。

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

输出格式

对每个 2 l r 操作输出一行,表示对应区间和。

样例

5 3
1 2 3 4 5
2 1 3
1 2 10
2 1 3
6
16

数据范围

1n,m1051\le n,m\le 10^5ai109|a_i|\le 10^9k109|k|\le 10^9

区间和可能超出 int,需使用 long long