有一条河上铺着 n 块石头,编号从 1 到 n。你一开始站在第 1 块石头上。每块石头 i 上都有一个正整数 a[i],表示你从这块石头最多可以跳到第 a[i] 块石头,题目保证在 i < j 时必有 a[i] <= a[j] 。
总共有 T 组查询,对于每组查询,你的目标是从第 L 块石头跳到第 R 块石头。请问最少需要多少步能到达第 R 块石头。如果无法到达,输出 -1。
第一行一个整数 n,表示石头的数量 (1 ≤ n ≤ 10^5)。
第二行 n 个整数 a[1], a[2], …, a[n],表示每块石头的最大跳跃长度 (1 ≤ a[i] ≤ 10^5)。
第三行一个整数 T,表示接下来查询操作的组数(1 ≤ T ≤ 10^6)
接下来 T 行,每行两个整数 L,R 表示起点和终点的石头位置(1 ≤ L ≤ R ≤ 10^5)。
总共 T 行,每行一个整数,表示最少跳跃次数;如果无法到达终点,输出 -1。
5 2 4 4 5 7 1 1 5
3
5 1 1 1 1 1 1 1 5
-1
对于所有数据,保证:
1 ≤ n ≤ 10^5
1 ≤ a[i] ≤ 10^5
1 ≤ T ≤ 10^6
1 ≤ L < R ≤ 10^5
在 i < j 时,必有 a[i] <= a[j]