给定序列 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an) 和 b = ( b 1 , b 2 , ⋯ , b n ) b=(b_1,b_2,\cdots,b_n) b=(b1,b2,⋯,bn),有 m m m 个操作分三种:
- add ( l , r , k , t ) \operatorname{add}(l,r,k,t) add(l,r,k,t):对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r],若 a i × b i ≤ k a_i\times b_i\le k ai×bi≤k,则执行 a i ← a i + t , b i ← b i + t a_i\gets a_i+t,b_i\gets b_i+t ai←ai+t,bi←bi+t.
- set ( i , x , y ) \operatorname{set}(i,x,y) set(i,x,y):执行 a i ← x , b i ← y a_i\gets x,b_i\gets y ai←x,bi←y.
- query ( l , r ) \operatorname{query}(l,r) query(l,r):求 ∑ i = l r a i + b i \sum\limits_{i=l}^r a_i+b_i i=l∑rai+bi.