QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 512 MB Total points: 100
[-9]

# 9634. 序列

Statistics

题目描述

已知一个序列 a 和一个初值为 0 的序列 b,你需要进行下面三种操作:

  • 1 x y:将 ax 修改为 y
  • 2 l r:对于所有的 i[l,r],将 bi 加上 max
  • 3 l r:求 \sum_{i=l}^{r} b_i

输入格式

第一行包含两个正整数 n, m,分别表示序列 a 的长度和操作次数。

第二行包含 n 个整数 a_1, a_2, \cdots, a_n,表示序列 a

接下来 m 行,每行行首有一个整数 op,表示操作类型,接下来两个整数表示操作参数。

输出格式

对于 op = 3 的操作,输出一行包含一个整数,表示这个询问的答案。

样例输入 1

5 5
2 1 4 3 5
2 1 3
2 4 3
1 2 3
3 1 3
3 2 5

样例输出 1

8
6

样例输入 2

10 10
5 6 10 3 6 7 10 10 1 10 
2 2 4
1 10 7
3 2 8
2 4 5
1 8 2
3 2 2
2 8 9
2 1 2
1 2 10
3 2 3

样例输出 2

26
6
22

数据范围

对于 100\% 的数据,保证 1 \le n, m \le 5 \times 10^51 \le l \le r \le n1 \le x \le n1 \le a_i, y \le 10^9

子任务编号 n, m \le 分值 特殊性质
1 1000 5
2 10^5 15
3 2 \times 10^5 20
4 5 \times 10^5 20 op = 2 时,l = 1
5 5 \times 10^5 20 op \ne 1
6 5 \times 10^5 20