Redirecting to
NADOS

Sum Of Range - Range Query Range Update

Try First, Check Solution later

1. You should first read the question and watch the question video.
2. Think of a solution approach, then try and submit the question on editor tab.
3. We strongly advise you to watch the solution video for prescribed approach.


You are given an array(of integers) of length n.
You are required to answer q queries.

Queries can be of two types
0. 0 l r : In this you have to return sum of all elements arr[i] for i in l<=i<=r.
1. 1 l r val: In this query u have to increase all elements in this interval [l, r] by val.

To do the above task u have to create a datastructure as follows :-

Implement the SegmentTree class:
1. SegmentTree(int arr[]): Initializes the SegmentTree object with an array,
2. void update(int l, int r, int val): increase all elements in this interval [l, r] by val,
3. int query(int l, int r): return sum of all elements arr[i] for which i is in range [l, r].
Input Format
A number n
n1
n2
.. n number of elements
A number q
following q lines contains queries of format either of two
0 l r,
1 l r val
Output Format
for each query of type 0 print a single integer in seperate line
Question Video
Constraints
1. 1 <= n, q <= 10^5
2. 0 <= l <= r < n
3. 10^4 <= arr[i], val <= 10^4.
Sample Input
8
0
10
10
-1
5
8
10
2
5
0 7 7
1 4 6 1
0 2 4
1 5 5 7
0 3 7
Sample Output
2
15
34



  • Asked in Companies
  • Related Topics






Video Solution

Code Solution

Run
 
Run
Id Name