#P10638. BZOJ4355 Play with sequence

    ID: 10070 远端评测题 1500ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>线段树O2优化吉司机线段树, segment tree beats

BZOJ4355 Play with sequence

题目描述

维护一个长度为 nn 的整数序列 aa,支持三种操作:

  • 1 u v c,对于 i[u,v]\forall i \in [u,v],将 aia_i 更改为 cc
  • 2 u v c,对于 i[u,v]\forall i \in [u,v],将 aia_i 更改为 max(ai+c,0)\max(a_i+c,0)
  • 3 u v,输出 i=uv[ai=0]\sum \limits_{i=u}^v [a_i=0] 的值。

输入格式

第一行输入两个正整数 n,mn,m,表示序列长度和操作个数。

第二行输入 nn 个整数 aia_i,表示序列的初始状态。

第三行开始,往下 mm 行,每行表示一个操作。

输出格式

输出若干行,每行一个整数,依次回答每个操作 33 的问题。

5 3
6 4 6 6 4 
2 1 5 -5
1 3 4 4
3 1 5
2

提示

对于 100%100\% 的数据,1n,m3×1051\leq n,m\leq 3\times 10^50ai1090\leq a_i\leq 10^9

  • 对于操作 11,保证 0c1090\leq c\leq 10^9
  • 对于操作 22,保证 c109|c| \leq 10^9

且对于所有操作,保证 1uvn1\leq u\leq v\leq n