Description
给定序列 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an).
有 m m m 个操作,分以下两种:
- modify ( l , r , k ) \operatorname{modify}(l,r,k) modify(l,r,k):对每个 i ∈ [ l , r ] i \in [l,r] i∈[l,r] 执行 a i ← a i + k a_i \leftarrow a_i+k ai←ai+k
- query ( l , r , p ) \operatorname{query}(l,r,p) query(l,r,p):定义 f ( l , l ) = a l f(l,l)=a_l f(l,l)=al, f ( l , r ) = a l f ( l + 1 , r ) ( l < r ) f(l,r)=a_l^{f(l+1,r)} \;(l < r) f(l,r)=alf(l+1,r)