Allen's Segments
View as PDFCredit to for tweaking the problem to be harder.
is having trouble with his Latin homework. Since he wants to study for his summatives, he has translated the problem and entrusted you with this task instead.
He has given you  segments. Segment 
 covers the interval 
 and has a value 
. We say that segment 
 covers segment 
 if every point in 
 is inside segment 
, and this would still hold true if segment 
 were shifted to the left or to the right by 
. These 
 segments are special - if two segments share a point, then the larger segment covers the smaller segment.
He gives you  queries in the form of 
a b. For each query, find the ID of the segment with lowest value that covers both segments  and 
. If there are no such segments, output 
-1.
If there is more than one segment that covers  and 
 of the same value, output the one of smallest length.
Please help solve this problem!
Input Specification
A single integer  
, followed by 
 lines in the form 
 
 
.
The next line will contain a single integer  
, followed by 
 queries in the form 
a b.
Output Specification
 lines, the answer to the 
 query.
Sample Input 1
3
2 3 2
1 6 10
4 5 3
2
1 3
1 2
Sample Output 1
2
-1
Comments
Are the segments distinct?
In other words, there cannot be any two segments that partially share a range (this includes the ends).