#P16921. [Ontak2025]替换并重复
[Ontak2025]替换并重复
题目描述
给定整数数组 ,其中 。
对于任意 ,定义函数
$f(l,r)=\left(\min_{l\le i\le r}a_i,\ \max_{l\le i\le r}a_i\right)$。
现在从一个区间端点对 开始,不断重复应用 :
,
,
依此类推。
共有 个互相独立的询问。对于每个初始对 ,求最少需要应用多少次 才能到达 。
如果永远无法到达 ,输出 -1。
注意:如果初始对本身就是 ,答案为 0。
输入格式
第一行两个整数 ,满足 。
第二行 个整数 ,满足 。
接下来 行,每行两个整数 ,满足 。
输出格式
对于每个询问输出一行:
- 最少需要调用多少次
replace才能得到 ; - 若不可能,输出
-1。
样例 1
5 6
2 5 4 1 3
4 4
1 5
1 4
3 5
4 5
2 3
-1
0
1
2
3
4
例如:
- $(4,4)\to(1,1)\to(2,2)\to(5,5)\to(3,3)\to(4,4)\to\cdots$,进入循环,所以答案为
-1; - ,答案为 1;
- ,答案为 2。
样例 2
6 3
2 3 4 6 1 2
5 6
2 5
2 3
5
1
3
样例 3
5 3
3 2 2 4 1
2 5
1 3
1 5
-1
-1
0
子任务
| 子任务 | 额外限制 | 分值 |
|---|---|---|
| 1 | 2 | |
| 2 | 11 | |
| 3 | 或 | 7 |
| 4 | $ | a_i-i |
| 5 | 每个询问满足 | 46 |
| 6 | 无额外限制 | 21 |