
区间取 min/max/加、区间求和(Range Chmin Chmax Add Range Sum)
问题描述
给定一个长度为 N 的整数序列 a0,a1,…,aN−1。请按顺序处理以下 Q 个查询:
0 l r b:对每个 i=l,l+1,…,r−1,执行 ai←min(ai,b)。
1 l r b:对每个 i=l,l+1,…,r−1,执行 ai←max(ai,b)。
2 l r b:对每个 i=l,l+1,…,r−1,执行 ai←ai+b。
3 l r:输出 ∑i=lr−1ai。
约束条件
- 1≤N,Q≤2×105
- ∣ai∣≤1012 在处理查询过程中始终成立
- 0≤l<r≤N
输入格式
N Q
a0 ⋯ aN−1
Query0
Query1
:
QueryQ−1
5 7
1 2 3 4 5
3 0 5
2 2 4 100
3 0 3
0 1 3 10
3 2 5
1 2 5 20
3 0 5
15
106
119
147