说明
在一条直线上有 n 个等距排列的天线,编号从 1 到 n。每个天线有一个功率评级,第 i 个天线的功率为 pi。
第 i 个天线和第 j 个天线能够直接通信当且仅当它们之间的距离不超过它们功率的最小值,即 ∣i−j∣≤min(pi,pj)。在两个这样的天线之间直接发送消息需要 1 秒。
问从天线 a 发送消息到天线 b 所需的最短时间是多少?消息可以经过其他天线作为中继。
输入格式
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤100000)—— 测试用例的数量。接下来是 t 个测试用例的描述。
每个测试用例的第一行包含三个整数 n、a、b(1≤a,b≤n≤200000)—— 分别表示天线的数量、起始天线和目标天线。
第二行包含 n 个整数 p1,p2,…,pn(1≤pi≤n)—— 天线的功率。
所有测试用例的 n 之和不超过 200000。
输出格式
对于每个测试用例,输出将消息从 a 传输到 b 所需的秒数。可以证明在题目约束下,总是可以发送这样的消息。
3
10 2 9
4 1 1 1 5 1 1 1 1 5
1 1 1
1
3 1 3
3 3 1
4
0
2
提示
在第一个测试用例中,我们必须将消息从天线 2 发送到天线 9。一个需要 4 秒的通信序列(这是可能的最短时间)如下:
- 用 1 秒将消息从天线 2 发送到天线 1。这是可能的,因为 ∣2−1∣≤min(1,4)=min(p2,p1)。
- 用 1 秒将消息从天线 1 发送到天线 5。这是可能的,因为 ∣1−5∣≤min(4,5)=min(p1,p5)。
- 用 1 秒将消息从天线 5 发送到天线 10。这是可能的,因为 ∣5−10∣≤min(5,5)=min(p5,p10)。
- 用 1 秒将消息从天线 10 发送到天线 9。这是可能的,因为 ∣10−9∣≤min(5,1)=min(p10,p9)。
翻译由 DeepSeek 完成