区间修改与查询

题目描述

给定由N个整数构成的数列,再给定M条指令,每条指令可能是如下两种之一:
1.C l r d,表示将区间[l,r]之间的每个数都加上整数d;
2.Q l r,表示询问区间[l,r]之间所有数的和;
对于每次询问,请输出对应的和。

输入

第1行有2个整数N和M;
第2行有N个整数,空格隔开;
接下来M行,每行读入一条题目描述的指令。
1≤N,M≤105
-10000≤d≤10000,-109≤N个整数≤109

输出

输出若干行,每行一个整数,代表了对于每次询问输出的结果。

样例

输入:

10 5
1 2 3 4 5 6 7 8 9 10
Q 4 4
Q 1 10
Q 2 4
C 3 6 3
Q 2 4

输出:

4
55
9
15
查看思路与题解