U471448 区间加,但是等比数列

题目描述

现在有一个长度为 $n$ 的数列 $arr$ ,你需要维护以下操作: $1 \, l \, r \, a \, c$ 这意味着你要在区间 $[l,r]$ 上增加首项为 $a$ ,公比为 $c$ 的等比数列,形式化地, $\forall i \in [l,r],arr_i+=a \times c^{i-l}$ $2 \, l \, r$ 查询 $[l,r]$ 的区间和模 $998244353$

输入格式

第一行两个数字 $n$ 和 $q$ ,表示序列长度和操作数量。 第二行 $n$ 个数字表示初始的 $arr$ 序列 接下来 $q$ 行如题目描述输入操作

输出格式

对于每一个区间查询,输出结果模 $998244353$ 的值

说明/提示

$n,q \leqslant 3 \times 10^5$ , 输入数字保证在 $int$ 范围之内。 对于 $ 20\% $ 的数据,$n,q \leqslant 100$ 对于额外 $ 20\%$ 的数据,$n,q \leqslant 5000$ 对于额外 $ 20\% $ 的数据,没有 $1$ 操作 对于额外 $ 10\% $ 的数据,所有 $1$ 操作输入的 $c$ 为 $1$