CF2070B Robot Program

题目描述

在坐标轴上有一个机器人。初始时,机器人位于点 $x$($x \ne 0$)。机器人有一个长度为 $n$ 的命令序列,由字符组成,其中 L 表示向左移动一个单位(从点 $p$ 移动到点 $(p-1)$),R 表示向右移动一个单位(从点 $p$ 移动到点 $(p+1)$)。 机器人开始执行这个命令序列(每秒执行一个命令,按顺序执行)。然而,每当机器人到达点 0 时,已执行命令的计数器会被重置(即它会从头开始重新执行整个命令序列)。如果机器人完成了所有命令且未处于 0 点,它将停止运行。 你的任务是计算在接下来的 $k$ 秒内,机器人会进入点 0 多少次。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。 每个测试用例的第一行包含三个整数 $n$、$x$ 和 $k$($1 \le n \le 2 \cdot 10^5$;$-n \le x \le n$;$n \le k \le 10^{18}$)。 每个测试用例的第二行包含一个由 $n$ 个字符 L 和/或 R 组成的字符串 $s$。 输入额外约束:所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数——在接下来的 $k$ 秒内机器人进入点 0 的次数。

说明/提示

第一个示例中,机器人移动路径为:$2 \rightarrow 1 \rightarrow \underline{0} \rightarrow -1 \rightarrow -2 \rightarrow -1$。机器人完成了序列中的所有指令且未处于 0 点,因此在 5 秒后停止,点 0 被进入 1 次。 第二个示例中,机器人移动路径为:$-1 \rightarrow \underline{0} \rightarrow 1 \rightarrow \underline{0} \rightarrow 1 \rightarrow \underline{0} \rightarrow 1 \rightarrow \underline{0} \rightarrow 1$。机器人运行了 8 秒,点 0 被进入 4 次。 第三个示例中,机器人移动路径为:$-2 \rightarrow -3 \rightarrow -2 \rightarrow -1 \rightarrow \underline{0} \rightarrow -1$。机器人运行了 5 秒,点 0 被进入 1 次。 第四个示例中,机器人移动路径为:$3 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 3 \rightarrow 2$。机器人完成了序列中的所有指令且未处于 0 点,因此在 5 秒后停止,未到达点 0。 翻译由 DeepSeek R1 完成