#P9127. 区间仿射点查(Range Affine Point Get)

区间仿射点查(Range Affine Point Get)

区间仿射点查(Range Affine Point Get)

问题描述

给定一个长度为 N N 的整数序列 a0,a1,,aN1 a_0, a_1, \dots, a_{N-1} 。请按顺序处理以下 Q Q 个查询:

  • 0 l r b c:对每个 i=l,l+1,,r1 i = l, l+1, \dots, r-1 ,执行 aib×ai+c a_i \leftarrow b \times a_i + c
  • 1 i:输出 aimod998244353 a_i \bmod 998244353

约束条件

  • 1N,Q5×105 1 \leq N, Q \leq 5 \times 10^5
  • 0ai,c<998244353 0 \leq a_i, c < 998244353
  • 1b<998244353 1 \leq b < 998244353
  • 0l<rN 0 \leq l < r \leq N
  • 0i<N 0 \leq i < N

输入格式

N QN\ Q
a0  aN1a_0\ \cdots\ a_{N-1}
Query0Query_0
Query1Query_1
:
QueryQ1Query_{Q-1}

5 12
1 2 3 4 5
0 2 4 100 101
1 0
1 1
1 2
1 3
1 4
0 1 3 102 103
1 0
1 1
1 2
1 3
1 4
1
2
401
501
5
1
307
41005
501
5