青蛙跳跃
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定一个长度为 n 的数组 a,青蛙从起点 s 出发,每次跳跃遵循以下规则:
- 跳跃条件:青蛙从位置
i跳跃到位置e(满足i ≤ e < n),且区间[i, e]的最大值不超过a[i]。 - 跳跃策略:青蛙总是尽可能跳到最远的位置。
你需要处理 q 次查询,每次查询给出起点 s 和终点 t,要求计算青蛙从 s 到 t 的最少跳跃次数。若无法到达,输出 -1。
输入格式
- 第一行两个整数
n和q(1 ≤ n, q ≤ 1e5)。 - 第二行
n个整数a[0], a[1], ..., a[n-1](1 ≤ a[i] ≤ 1e9)。 - 接下来
q行,每行两个整数s和t(0 ≤ s ≤ t ≤ n-1)。
输出格式
对于每个查询,输出最少跳跃次数,若无法到达则输出 -1。
样例输入
5 3
5 3 4 2 4
0 4
1 3
2 2
样例输出
1
2
0