#P1036. A和B
A和B
说明
给出一个长度为n(1 < n < 1e6)的数列(下标从1开始),初始情况下每个数都是零,之后给出m组操作,操作分为两种,a操作:给出三个数L,R,X(0 < L < R <= n, 0 <= X < 1e18),表示数列区间L到R(包括端点)之间的所有数增加X,b操作给出两个数(0 < L < R <= n),要求输出数列区间L到R(包括端点)之间所有数的和。
答案对1e9+7取余。
输入格式
第一行输入 n,m(1 < n < 1e6, 2 <= m <= 200000)第2到m+1行每行先输入一个字符 c,若字符c为b则继续输入两个数:L,R(0 < L < R <= n),否则输入三个数L,R,X(0 < L < R <= n, 0 <= X < 1e18)
输出格式
若是b操作输出数列区间L到R(包括端点)之间所有数的和,a操作不作输出。
样例
3 3
a 1 3 10000000000000
a 1 3 100000000000
b 1 3
999787907