#XD2. 区间覆盖 + 区间加法(复合懒标记)

区间覆盖 + 区间加法(复合懒标记)

Description

维护一个数组,支持三种操作:

  1. 将区间 ([L, R]) 覆盖为值 (X)。
  2. 对区间 ([L, R]) 所有元素加上 (K)。
  3. 查询区间 ([L, R]) 的元素和。

Input Format

  • 第一行为两个整数 (N) 和 (Q)。
  • 第二行为初始数组的 (N) 个整数。
  • 接下来 (Q) 行,每行表示一个操作:
    • 1 L R X:覆盖操作。
    • 2 L R K:加法操作。
    • 3 L R:查询操作。

Output Format

对每个查询操作输出结果。

4 3  
1 2 3 4  
1 0 2 5  
2 1 3 3  
3 0 3  
21   

Hint

解释:覆盖后数组为 [5,5,5,4],加法后为 [5,8,8,7],和为 28(但样例可能有误,需核对逻辑)。 【数据范围】

  • (1 \leq N, Q \leq 10^5)
  • (0 \leq \text{数组元素}, X, K \leq 10^9)