I recently tried solving 279-C Problem, but i got WA in test case 8. Here was my approach :

My first for loop finds the triplets (L, M, R) where m is the middle point where the sequence changes from non decreasing to non increasing. Here I store those m point in a vector (ranges) and use a map to store 'L' and 'R' points.

Then for each query I binary search the 'L' point in the 'ranges' vector and check whether 'L' point of this query in fact fits the left portion of the original range and then perform the check for R using the map of pairs. if(l >= left && l <= mid && r <= right && r >= mid)

Can someone tell me what is wrong in this? My Code Thanks!!