题目描述
译自 ROI Regional 2026 Day1 T4. Прыжки по вершинам
在电脑游戏《超级跳跃》中,英雄需要在山脉的峰顶之间跳跃,目标是到达带有旗帜的终点峰顶,完成关卡。
山脉由 n 个连续的峰顶组成,第 i 个峰顶位于位置 i,高度为 hi。英雄可以从第 i 个峰顶直接跳到第 j 个峰顶 (i<j),条件是:在直线飞行路径上,没有其他峰顶严格高于连接 (i,hi) 和 (j,hj) 的线段。更正式地说:不存在 k (i<k<j),使得点 (k,hk) 严格位于线段 (i,hi)-(j,hj) 的上方。
「击败AI」公司正在训练神经网络来控制游戏中的英雄。为了生成训练数据,需要回答多个询问:对于给定的左右端点 l,r (1≤l≤r≤n),计算从峰顶 l 出发,到达峰顶 r 所需的最少跳跃次数。
输入格式
第一行一个整数 n (1≤n≤105),表示峰顶数量。
第二行 n 个整数 h1,h2,…,hn (0≤hi≤1012),表示各峰顶高度。
第三行一个整数 q (1≤q≤105),表示询问数量。
接下来 q 行,每行两个整数 li,ri (1≤li≤ri≤n),表示一次询问的参数。
输出格式
对每个询问输出一行一个非负整数,表示从 li 到达 ri 所需的最少跳跃次数。
8
5 3 4 3 6 2 1 4
3
1 8
2 7
4 4
2
2
0
样例中的第二个询问(从峰顶 2 到峰顶 7):

英雄可以访问峰顶 2→5→7,共进行 2 次跳跃。
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 |
分值 |
附加限制 |
子任务依赖 |
| 1 |
9 |
n,q≤300 |
|
| 2 |
9 |
n,q≤5000 |
1 |
| 3 |
14 |
hi≤10 |
|
| 4 |
21 |
存在某个 k,使得所有查询都有 li≤k≤ri |
| 5 |
27 |
n,q≤5⋅104 |
1,2 |
| 6 |
20 |
无附加限制 |
1∼5 |