#199. 组合数学靠运气

组合数学靠运气

Description

给出两个整数NNMM,将对一个初始下全为零的数组(长度为NN)做MM次操作。

三种类型的操作如下:

  1. (输入"1 a b")查询位于[a, b]间的元素之和

  2. (输入"2 a b v")将[a, b]间的每一个元素都加上v

  3. (输入"3")将数组变为其后缀和数组(3,1,1变为 5,2,1)


Input Format

第一行给出两个整数NNMM1N,M1051 \leq N, M \leq 10^5

接下来的M行,每行给出一个操作(1abN1 \leq a \leq b \leq N, 0v1090 \leq v \leq 10^9

其中操作1的个数会比较少(少于400个),请注意优化操作2和3的时间复杂度

Output Format

对于每次操作1,在一行内输出所求和,答案对998244353取模

10 8
2 2 5 1
3
1 2 5
1 1 5
3
1 1 5
3
1 1 5

10
14
34
69