Just Another Range Query

SMAN2901 The Tough Winter Spar, 20...
Limits 1s, 512 MB

This is another simple range query problem where you will perform some updates and answer some queries. Let's take an array AA of length NN. Initially, A[i]=iA[i] = i for each ii in the range [1,N][1,N].

You will have to perform QQ operations on this array. There will be two types of operations:

  • 1 L R V\texttt{1 L R V} - which means that you will have to subtract VV from all A[i]A[i] such that LiRL ≤ i ≤ R.
  • 2 L R\texttt{2 L R} - which means that you will have to print the sum of all A[i]A[i] such that LiRL ≤ i ≤ R.

Input

In the first line of input, there will be two integers NN and QQ (1N1091 \le N \le 10^9, 1Q1051 \le Q \le 10^5) which are the length of the array and number of operations to perform respectively.

Next Q lines will contain the description of the operations to perform in the format 1 L R V\texttt{1 L R V} or 2 L R\texttt{2 L R} (1LRN1 \le L \le R \le N, 1V1051 \le V \le 10^5).

Output

For each operation of the format 2 L R\texttt{2 L R}, print the answer of the query in a single line.

Sample

InputOutput
10 5
2 1 5
1 4 8 10
2 2 7
1 1 10 1
2 1 10
15
-13
-5

Submit

Login to submit.

Contributors

Statistics

80% Solution Ratio
aminulEarliest, Dec '18
Sajjat004Fastest, 0.1s
SMAN2901Lightest, 8.0 MB
mahdi.hasnatShortest, 981B
Toph uses cookies. By continuing you agree to our Cookie Policy.