题目描述
Yuki 是一个可可爱爱的小魔女!
Yuki 的面前有一条长度为 n 的斑马线,其可以用一个长度为 n 的 01 串 s 描述(下标从 1 开始):
- 若 si=0,则表示这条斑马线上的第 i 个位置为黑色;
- 若 si=1,则表示这条斑马线上的第 i 个位置为白色。
同时,Yuki 有一个跳跃能力 k,表示当她位于位置 x 时,她可以通过一次跳跃,移动到任意一个满足 max(1,x−k)≤y≤min(n,x+k) 的位置 y。
接下来,Yuki 会在斑马线上进行 q 轮跳跃:
- 第 i 轮跳跃中,Yuki 初始时位于位置 ai,她希望通过若干次跳跃恰好移动到位置 bi;其中,保证位置 ai 和位置 bi 均为白色且 ai 不等于 bi,即 sai=sbi=1 且 ai=bi。
- 若 t=0,则 Yuki 只希望最小化她跳跃后踩到黑色位置的次数;若 t=1,则 Yuki 希望在最小化她跳跃后踩到黑色位置的次数的基础上,最小化跳跃次数。
Yuki 需要你帮助她求出每轮跳跃的答案。
(在斑马线上嬉戏打闹是不好的行为,小朋友不要学!)
输入格式
第一行包含五个整数 c,n,q,k,t,其中 c 表示测试点编号。c=0 表示该测试点为样例。
第二行包含一个长度为 n 的 01 串 s。
接下来 q 行,第 i 行包含两个整数 ai,bi。
输出格式
输出 q 行:
- 若 t=0,则第 i 行包含一个整数,表示第 i 轮跳跃中,Yuki 跳跃后踩到黑色位置的次数的最小值;
- 若 t=1,则第 i 行包含两个整数,分别表示:
- 第 i 轮跳跃中,Yuki 跳跃后踩到黑色位置的次数的最小值;
- 第 i 轮跳跃中,在最小化 Yuki 跳跃后踩到黑色位置的次数的基础上,Yuki 跳跃次数的最小值。
0 8 3 2 1
11001111
1 7
7 5
2 5
1 3
0 1
1 2
提示
样例 1 解释
对于第 1 轮跳跃:
- 唯一一种满足条件的跳跃方式为 1→3→5→7;
- 1→2→5→7 不满足条件,因为 Yuki 的跳跃能力为 2,无法从位置 2 跳跃至位置 5;
- 1→2→4→6→7 不满足条件,因为没有最小化跳跃次数。
对于第 2 轮跳跃,唯一一种满足要求的跳跃方式为 7→5。
对于第 3 轮跳跃,满足要求的跳跃方式有 2→3→5 和 2→4→5。
样例 2
见下发文件中的 jump/jump2.in 与 jump/jump2.ans。
该组样例满足测试点 3 的限制。
样例 3
见下发文件中的 jump/jump3.in 与 jump/jump3.ans。
该组样例满足测试点 7 的限制。
样例 4
见下发文件中的 jump/jump4.in 与 jump/jump4.ans。
该组样例满足测试点 13 的限制。
样例 5
见下发文件中的 jump/jump5.in 与 jump/jump5.ans。
该组样例满足测试点 15 的限制。
样例 6
见下发文件中的 jump/jump6.in 与 jump/jump6.ans。
该组样例满足测试点 17 的限制。
样例 7
见下发文件中的 jump/jump7.in 与 jump/jump7.ans。
该组样例满足测试点 19 的限制。
样例 8
见下发文件中的 jump/jump8.in 与 jump/jump8.ans。
该组样例满足测试点 25 的限制。
数据范围
对于所有测试数据,保证:
- 2≤n≤5×105,1≤q≤5×105;
- 1≤k<n,t∈{0,1},si∈{0,1};
- 1≤ai,bi≤n,sai=sbi=1,ai=bi。
保证对于所有编号为奇数的测试点都满足 t=1,对于所有编号为偶数的测试点都满足 t=0。
::cute-table{tuack}
| 测试点编号 |
n≤ |
q≤ |
特殊性质 |
| 1∼2 |
400 |
C |
| 3∼4 |
无 |
| 5∼6 |
2000 |
2000 |
C |
| 7∼10 |
无 |
| 11∼12 |
5×105 |
C |
| 13∼14 |
无 |
| 15∼16 |
5×105 |
A |
| 17∼18 |
B |
| 19∼20 |
C |
| 21∼25 |
无 |
- 特殊性质 A:保证 k=1。
- 特殊性质 B:保证对于任意小于 n 的正整数 i,都满足 si 和 si+1 中至多有一个 0。
- 特殊性质 C:保证不存在不大于 n−k+1 的正整数 i,满足 si 至 si+k−1 均为 0。