I have a vector of pairs of length N. Now i have Q queries of type given range let say L to R, find the minimum value of second element of pair whose first element is equal to given number K.
For example :
vector of 6 elements [{2,5},{8,7},{2,3},{8,6},{2,1},{8,4}]
Now for query : L=3 R=6 (1-based indexing) and K=8
Answer would be -> 4 which corresponds to this pair {8,4}
Constraints :
Q<=100000
N<=100000
value of first and second element of pair <=100000
I was thinking of segment tree approach, basically for every unique "first" element of pair let say v1, create a array , which has its elements made up of "second" element of original pair where "first" element value is v1;
Now for each v1 array ,create segment tree which store minimum element for a given range.
Then ,we can simply query corresponding "v1" segment tree for the above problem
My approach is very complex, can someone give me an idea how to approach this problem efficiently.