#CF2070B. 机器人程序

机器人程序

B. 机器人程序
每个测试点的时间限制:22
每个测试点的内存限制:512512 兆字节

有一条直线,上面有一个机器人。机器人的初始位置在点 xxx0x \neq 0)。
机器人有一个长度为 nn 的指令序列,指令包含两种字符:

  • LL 表示向左移动一个单位(从 pp 点移动到 p1p-1 点)
  • RR 表示向右移动一个单位(从 pp 点移动到 p+1p+1 点)

机器人按顺序执行这些指令(每秒一条,按给出的顺序)。
但是,每当机器人到达 00 点时,指令执行计数器会重置(即它会从整个指令序列的开头重新执行)。
如果机器人执行完所有指令后,当前位置不是 00 点,则它停止运行。

你的任务是:计算在接下来的 kk 秒内,机器人会进入 00 点多少次。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试数据的组数。

每组测试数据的第一行包含三个整数 nnxxkk
1n21051 \le n \le 2 \cdot 10^5nxn-n \le x \le nnk1018n \le k \le 10^{18})。

每组测试数据的第二行包含一个长度为 nn 的字符串 ss,只包含 LLRR

额外限制:所有测试数据的 nn 之和不超过 21052 \cdot 10^5


输出
对于每组测试数据,输出一行一个整数,表示在接下来的 kk 秒内,机器人进入 00 点的次数。


示例
输入

6
3 2 6
LLR
2 -1 8
RL
4 -2 5
LRRR
5 3 7
LRRLL
1 1 1
L
3 -1 4846549234412827
RLR

输出

1
4
1
0
1
2423274617206414

注意

  • 第一个示例:机器人移动路径为:2101212 \to 1 \to 0 \to -1 \to -2 \to -1。机器人执行完所有指令后不在 00 点,所以它在 55 秒后停止。其间进入 0011 次。
  • 第二个示例:机器人移动路径为:101010101-1 \to 0 \to 1 \to 0 \to 1 \to 0 \to 1 \to 0 \to 1。机器人工作 88 秒,进入 0044 次。
  • 第三个示例:机器人移动路径为:232101-2 \to -3 \to -2 \to -1 \to 0 \to -1。机器人工作 55 秒,进入 0011 次。
  • 第四个示例:机器人移动路径为:3234323 \to 2 \to 3 \to 4 \to 3 \to 2。机器人执行完所有指令后不在 00 点,所以它在 55 秒后停止,从未到达 00 点。