6815.Range Updates and Sums

Time Limit: 1s Memory Limit: 512MB

Your task is to maintain an array of $n$ values and efficiently process the following types of queries:

Increase each value in range[a,b]byx.Set each value in range[a,b]tox.Calculate the sum of values in range[a,b].

Input Format(From the terminal/stdin)

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$ ".

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

Output Format(To the terminal/stdout)

Print the answer to each sum query.

Sample Input

Copy
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
 · \n
 · · · · · \n
 · · \n
 · · · \n
 · · \n
 · · · \n
 · · \n

Sample Output

Copy
7
11
15
 \n
  \n
  \n
Source: CSES, Range Queries, 1735

Submit

请先 登录

© 2025 FAQs