#DS1004. 区间求和1

区间求和1

题目描述

你有一块长度为 nn 的数组,初始时候各位置全是 00,给你两种操作,对一段数组进行操作。

直来直去,有两种操作

  • 0 l r x 表示将lr的范围全部加上x
  • 1 l r 表示询问从lr的数字的和。

输入格式

第一行两个整数 n,mn,m,代表数组长度和操作次数。

接下来 mm 行每行 11 个操作,具体格式见题目描述。

输出格式

对于每次操作0,输出一行表示整个数组的总和;对于每次操作1,输出一行查询区间的总和。

由于结果可能非常大,请输出结果除以 109+710^9+7 的结果。

8 4
0 1 3 5
0 2 4 7
1 2 7
0 1 5 3
15
36
31
51

测试数据范围

1n,m2000001≤n,m≤2000001lrn1≤l≤r≤n1x1091≤x≤10^9