#P14563. 跳跃

跳跃

题目描述

Yuki 是一个可可爱爱的小魔女!

Yuki 的面前有一条长度为 nn 的斑马线,其可以用一个长度为 nn01\texttt{01}ss 描述(下标从 11 开始):

  • si=0s_i=\texttt 0,则表示这条斑马线上的第 ii 个位置为黑色;
  • si=1s_i=\texttt 1,则表示这条斑马线上的第 ii 个位置为白色。

同时,Yuki 有一个跳跃能力 kk,表示当她位于位置 xx 时,她可以通过一次跳跃,移动到任意一个满足 max(1,xk)ymin(n,x+k)\max(1,x-k)\le y\le \min(n,x+k) 的位置 yy

接下来,Yuki 会在斑马线上进行 qq 轮跳跃:

  • ii 轮跳跃中,Yuki 初始时位于位置 aia_i,她希望通过若干次跳跃恰好移动到位置 bib_i;其中,保证位置 ai\boldsymbol{a_i} 和位置 bi\boldsymbol{b_i} 均为白色且 ai\boldsymbol{a_i} 不等于 bi\boldsymbol{b_i},即 sai=sbi=1s_{a_i}=s_{b_i}=\texttt 1aibia_i \ne b_i
  • t=0t=0,则 Yuki 只希望最小化她跳跃后踩到黑色位置的次数;若 t=1t=1,则 Yuki 希望在最小化她跳跃后踩到黑色位置的次数的基础上,最小化跳跃次数。

Yuki 需要你帮助她求出每轮跳跃的答案。

(在斑马线上嬉戏打闹是不好的行为,小朋友不要学!)

输入格式

第一行包含五个整数 c,n,q,k,tc,n,q,k,t,其中 cc 表示测试点编号。c=0c=0 表示该测试点为样例。

第二行包含一个长度为 nn01\texttt{01}ss

接下来 qq 行,第 ii 行包含两个整数 ai,bia_i,b_i

输出格式

输出 qq 行:

  • t=0t=0,则第 ii 行包含一个整数,表示第 ii 轮跳跃中,Yuki 跳跃后踩到黑色位置的次数的最小值;
  • t=1t=1,则第 ii 行包含两个整数,分别表示:
    • ii 轮跳跃中,Yuki 跳跃后踩到黑色位置的次数的最小值;
    • ii 轮跳跃中,在最小化 Yuki 跳跃后踩到黑色位置的次数的基础上,Yuki 跳跃次数的最小值。
0 8 3 2 1
11001111
1 7
7 5
2 5
1 3
0 1
1 2

提示

样例 1 解释

对于第 11 轮跳跃:

  • 唯一一种满足条件的跳跃方式为 13571 \to 3 \to 5 \to 7
  • 12571 \to 2 \to5\to7 不满足条件,因为 Yuki 的跳跃能力为 22,无法从位置 22 跳跃至位置 55
  • 124671 \to 2 \to 4 \to 6\to 7 不满足条件,因为没有最小化跳跃次数。

对于第 22 轮跳跃,唯一一种满足要求的跳跃方式为 757 \to 5

对于第 33 轮跳跃,满足要求的跳跃方式有 2352 \to 3 \to 52452 \to 4 \to 5

样例 2

见下发文件中的 jump/jump2.in\textbf{\textit{jump/jump2.in}}jump/jump2.ans\textbf{\textit{jump/jump2.ans}}

该组样例满足测试点 33 的限制。

样例 3

见下发文件中的 jump/jump3.in\textbf{\textit{jump/jump3.in}}jump/jump3.ans\textbf{\textit{jump/jump3.ans}}

该组样例满足测试点 77 的限制。

样例 4

见下发文件中的 jump/jump4.in\textbf{\textit{jump/jump4.in}}jump/jump4.ans\textbf{\textit{jump/jump4.ans}}

该组样例满足测试点 1313 的限制。

样例 5

见下发文件中的 jump/jump5.in\textbf{\textit{jump/jump5.in}}jump/jump5.ans\textbf{\textit{jump/jump5.ans}}

该组样例满足测试点 1515 的限制。

样例 6

见下发文件中的 jump/jump6.in\textbf{\textit{jump/jump6.in}}jump/jump6.ans\textbf{\textit{jump/jump6.ans}}

该组样例满足测试点 1717 的限制。

样例 7

见下发文件中的 jump/jump7.in\textbf{\textit{jump/jump7.in}}jump/jump7.ans\textbf{\textit{jump/jump7.ans}}

该组样例满足测试点 1919 的限制。

样例 8

见下发文件中的 jump/jump8.in\textbf{\textit{jump/jump8.in}}jump/jump8.ans\textbf{\textit{jump/jump8.ans}}

该组样例满足测试点 2525 的限制。

数据范围

对于所有测试数据,保证:

  • 2n5×1052 \le n\le 5\times10^51q5×1051 \le q \le 5\times10^5
  • 1k<n1 \le k \lt nt{0,1}t \in \{0,1\}si{0,1}s_i \in \{\texttt 0,\texttt 1\}
  • 1ai,bin1 \le a_i,b_i \le nsai=sbi=1s_{a_i}=s_{b_i}=\texttt 1aibia_i \ne b_i

保证对于所有编号为奇数的测试点都满足 t=1\boldsymbol{t=1},对于所有编号为偶数的测试点都满足 t=0\boldsymbol{t=0}

::cute-table{tuack}

测试点编号 nn \le qq \le 特殊性质
121\sim2 400400 C
343\sim4
565\sim6 20002000 20002000 C
7107\sim10
111211\sim12 5×1055\times10^5 C
131413\sim14
151615\sim16 5×1055\times10^5 A
171817\sim18 B
192019\sim20 C
212521\sim25
  • 特殊性质 A:保证 k=1k=1
  • 特殊性质 B:保证对于任意小于 nn 的正整数 ii,都满足 sis_isi+1s_{i+1}至多有一个 0\texttt{0}
  • 特殊性质 C:保证不存在不大于 nk+1n-k+1 的正整数 ii,满足 sis_isi+k1s_{i+k-1} 均为 0\texttt 0