题目描述
给出一个长度为 n 的数组和 q 次操作,每次操作首先为一个整数 op:
- op = 1 时,紧接着三个整数 l,r,x,代表给 a[l] ~ a[r] 位置的每个数数加上 x;
- op = 2 时,紧接着两个整数 l,r,代表你需要求出 a[l] ~ a[r] 中所有整数的和。
输入
第一行包含两个整数 n,q(1 ≤ n,q ≤ 105)。
第二行包含 n 个整数 ai(-109 ≤ ai ≤ 109)。
接下来 q 行每行首先为一个整数 op(op ∈ {1,2}):
第二行包含 n 个整数 ai(-109 ≤ ai ≤ 109)。
接下来 q 行每行首先为一个整数 op(op ∈ {1,2}):
- op = 1 时,紧接着三个整数 l,r,x(1 ≤ l ≤ r ≤ n,-10000 ≤ x ≤ 10000);
- op = 2 时,紧接着两个整数 l,r(1 ≤ l ≤ r ≤ n)。
输出
对于每个操作 op = 2,输出占一行,包含一个整数,代表a[l] ~ a[r] 中所有整数的和。
样例输入 Copy
8 5
10 1 7 7 2 9 3 8
1 2 6 2
1 2 5 4
2 1 5
1 3 7 2
2 1 1
样例输出 Copy
26
28