题目描述
数轴上有 n 个位置,编号为 1 到 n。
对于每个位置 i,给定一个整数 ri,表示当你站在位置 i 时,本轮最多可以跳到区间 [i+1,ri] 中的任意一个位置。
保证:
- 对于所有 1≤i<n,都有 i+1≤ri≤n;
- rn=n;
- 序列满足 r1≤r2≤⋯≤rn。
现在有若干次询问,每次给出两个整数 l 和 r。你从位置 l 出发,想要用尽量少的跳跃次数到达某个编号不小于 r 的位置。
请输出最少需要多少次跳跃。
输入格式
第一行包含两个整数 n 和 q,分别表示位置数量和询问次数。
第二行包含 n 个整数 r1,r2,…,rn。
接下来 q 行,每行包含两个整数 l 和 r,表示一次询问。
数据范围:
- 1≤n,q≤2×105
- 对于所有 1≤i<n,都有 i+1≤ri≤n
- rn=n
- r1≤r2≤⋯≤rn
- 1≤l≤r≤n
输出格式
对于每次询问,输出一行一个整数,表示最少跳跃次数。
8 5
3 5 5 7 8 8 8 8
1 8
2 6
4 8
5 5
3 7
3
2
2
0
2