2294. Day10 Ex1 - Range Add Range SumⅡ

给定一个长为 n 的数组 a,依次给出 q 个以下形式的指令。

  • 0 l r x :对每个 i \in [l,r],将 a_i 加上 x
  • 1 l r :输出 \sum_{i=l}^r a_i \bmod 998244853

输入

第一行两个正整数 n,q (1 \leq n,q \leq 2 \times 10^5),分别表示数组 a 的长度与指令的个数。

第二行 n 个非负整数 a_i (0 \leq a_i \leq 10^9),表示数组 a

随后 q 行每行一条指令 (1 \leq l \leq r \leq n,1 \leq x \leq 10^9) ,具体格式见上。

输出

对每个形如 1 l r 的指令,输出一行一个整数,表示 \sum_{i=l}^r a_i \bmod 998244853

样例

标准输入 复制文本
6 4
1 1 4 5 1 4
0 1 3 806
0 4 6 148
1 2 5
1 3 3
标准输出 复制文本
1919
810

提示

初始状态:[1,1,4,5,1,4]

a_1\sim a_3 加上 806[807,807,810,5,1,4]

a_4\sim a_6 加上 148[807,807,810,153,149,152]

查询 \sum_{i=2}^5 a_i807+810+153+149=1919

查询 \sum_{i=3}^3 a_i810

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 12
通过 3