题目描述
维护一个长度为 n 的序列 a,现在有三种操作:
1 u v c:对于 ∀i∈[u,v],将 ai 更改为 c;
2 u v c:对于 ∀i∈[u,v],将 ai 更改为 max(ai+c,0);
3 u v:输出 ∑i=uv[ai=0]。
输入格式
第一行两个整数 n,m,分别表示序列长度和操作个数。
第二行 n 个整数,a1,a2,⋯,an,描述序列的初始状态。
接下来 m 行,每行表示一个操作。
输出格式
输出若干行,每行一个整数,依次回答每个操作 3 的问题。
5 3
6 4 6 6 4
2 1 5 -5
1 3 4 4
3 1 5
2
数据范围
对于 100% 的数据,1≤n,m≤3×105,0≤ai≤109。
对于操作 1,保证 0≤c≤109,对于操作 2,保证 ∣c∣≤109。
且对于所有操作,保证 1≤u≤v≤n。
来源
鸣谢 Claris。