Problem7615--[CSES Problem Set] Range Updates and Sums

7615: [CSES Problem Set] Range Updates and Sums

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

Your task is to maintain an array of nn values and efficiently process the following types of queries:
  1. Increase each value in range $[a,b]$ by $x$.
  2. Set each value in range $[a,b]$ to $x$.
  3. Calculate the sum of values in range $[a,b]$.

Input

The first input line has two integers $n$ and $q$: the array size and the number of queries.
The next line has $n$ values $t_1,t_2,\dots,t_n$: the initial contents of the array.
Finally, there are $q$ lines describing the queries. The format of each line is one of the following: "1 a b x", "2 a b x", or "3 a b".

Output

Print the answer to each sum query.

Constraints

$1≤n,q≤2⋅10^5$
$1 \le t_i, x \le 10^6$
$1 \le a \le b \le n$

Sample 1 Input

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

Sample 1 Output

7
11
15

HINT

相同题目:CSES 1735

Source/Category