You are given an array(of integers) of length n. You are required to answer q queries. In each query u are given an interval l, r both inclusive and u have to find the maximum element in this interval. 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. int query(int l, int r): return max in interval [l, r]. Can u do it in O(log(n)) or better Time Complexity.
Input Format
A number n n1 n2 .. n number of elements A number q following q lines contains queries of format l r
Output Format
for each query print a single integer in seperate line
Constraints
1. 1 <= n, q <= 10^5 2. 0 <= l <= r < n 3. 10^9 <= arr[i] <= 10^9 4. all input and output will fit in 32bit signed integer
Notice
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.Example
Input
8 8 7 4 2 5 3 1 10 4 0 7 0 3 2 7 1 6
Output
10 8 10 7