题号:NC221234
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
今天是周末,天气很好?小圆前辈决定去爬山。她来到了一个有n座山的地方,每座山都有一个编号a,和高度h。由于她是一个,坚持不懈、自强不息、全力以赴、百折不挠、斗志昂扬、持之以恒、雄心壮志……的人,所以她只会爬比她所在的山高的山且比她当前山的编号大的山,如果她从编号为i的山爬到编号为j的山。
(

, i < j),那么她将消耗
)
的体力值。当她的体力值小于当前消耗的体力值则无法爬山。
现在有q次询问,每次询问当小圆前辈在 编号为x的山,有w的体力值,能到达的山中编号最大的是多少?
输入描述:
第一行两个整数 n,q 表示有n座山,q次询问。
接下来有n行,每行有两个整数a,h表示山的编号,和编号为a的山的高度。
接下来有q行,每行有两个整数x,w表示小圆前辈在编号为x的山上,拥有的体力值为w。
输出描述:
有q行,对于每次询问输出一个整数表示能到达的山中编号最大的。
示例1
输入
复制
5 3
2 3
1 4
5 6
3 7
4 2
1 100
2 14
4 1
说明
对于第一次询问,编号为1的山可以到编号为1,3,5的山,且5的编号最大且到5消耗30体力值。所以输出5。
对于第二次询问,编号为2的山可以到编号为2,3,5的山,到编号为5的山消耗24体力值无法到达,到编号为3的山消耗14的体力值。所以输出3。
对于第三次询问,编号为4的山可以到编号为编号为4,5的山,到编号为5的山要消耗12体力值,所以只能在原地输出4。
备注:
,
,
,保证a两两不相等