Problem1787--[逐梦未来·Round3 EX] 午夜邮差

1787: [逐梦未来·Round3 EX] 午夜邮差

[Creator : ]
Time Limit : 1.500 sec  Memory Limit : 128 MiB

Description

音乐!派对!苹果派!——蛊·能天使·午夜邮差

一波未平一波又起!主持人加大了游戏难度!
这次游戏仍旧由n个数字组成,下标依次为1~n。
然后主持人会给出m个不同的操作,每次操作有两种不同的种类。
操作1:将下标范围在x到y的数字的值增加上k。
操作2:询问下标范围在x到y的所有数字的值的和是多少。
因为值可能会很大,你需要将结果对1000000007取模。
作为老板的魔王护,你需要帮助她完成这项游戏。

Input

第一行两个整数n,m,表示数字个数和操作次数
接下来一行n个整数,表示厨师数字。
接下来m行每行第一个整数ch表示操作种类。
当ch=1时,同一行接着输入三个整数x,y,k,表示每次操作都会将下标范围在x到y的数字的值增加上k。
当ch=2时,同一行接着输入两个整数x,y,表示询问下标范围在x到y的数字总和。

Output

若干行,每行一个数表示询问答案。

Sample Input Copy

5 8
1 2 3 4 5
1 1 3 2
2 1 3
1 2 5 1
2 1 5
1 3 4 3
2 1 3
2 2 5
2 1 5

Sample Output Copy

6
16
17
28
31

HINT

n<=200000
m<=500000
|ai|,|k|<=1000000
保证y>=x
考虑到评测机性能较差,实际数据可能较小。
算法不唯一。
by OverApex_MicroXY

Source/Category