#P0539. 区间加,区间求和(分块)

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

题目描述

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

  • 1 l r k:将区间 [l,r][l,r] 内每个数都加上 kk
  • 2 l r:输出区间和 i=lrai\sum_{i=l}^{r} a_i

输入格式

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

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

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

输出格式

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

样例

5 4
1 2 3 4 5
2 1 3
1 2 4 10
2 1 3
2 1 5
6
26
45

数据范围

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

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