区间修改与查询
题目描述
给定由N个整数构成的数列,再给定M条指令,每条指令可能是如下两种之一:
1.C l r d,表示将区间[l,r]之间的每个数都加上整数d;
2.Q l r,表示询问区间[l,r]之间所有数的和;
对于每次询问,请输出对应的和。
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。
第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