E. 田田的算数题 2014新生暑假个人排位赛08
时间限制 10000 ms
内存限制 65536 KB
题目描述
焦级长和田田玩算数。焦级长给田田一个数列ai,然后问田田第i项到第j项的数的和。
田田随手写了个简单的数据结构就搞定了。于是焦级长打算加大题目难度。
焦级长又添加了一个操作,即从第i项到第j项都按顺序加上一个等差数列的项
如从第2项到第4项加入一个首项为1,公差为3的等差数列即第2项+1,第3项+4,第4项+7,以此类推
于是田田写了半天又WA又T还RE了一炮,终于来求救你让你来写个程序帮他
输入格式
第一行为case数T
每个case第一行输入n,m,表示有数列长为n,有m个操作
之后n个数为ai即数列的初始数
之后m行为m个操作
第一个操作为插入
为1,l,r,x,d
1表示插入操作,l,r为数列的[l,r]会进行操作,等差数列的首项为x,公差为d
第二个操作为查询和
为2,l,r
2表示查询,l,r为求和的范围,即求al到ar的数列的和
T<=10
n,m<=10^5
ai,x<10^5,|d|<=100;
输出格式
每个查询输出一个值
输入样例
1
6 9
1 2 3 4 5 6
2 1 4
2 1 6
1 1 4 1 0
2 2 5
1 2 4 1 1
2 1 4
2 2 4
2 1 5
2 2 6
输出样例
10
21
17
20
18
25
29