CF2185E The Robotic Rush
题目描述
在一条无限长的数轴上,有 $n$ 个机器人和 $m$ 个尖刺,每个都位于数轴的某个特定位置。第 $i$ 个机器人位于位置 $a_i$,第 $i$ 个尖刺位于位置 $b_i$。如果一个机器人碰到一个尖刺,它就会死亡。
共有 $k$ 条指令被传达给机器人,每条指令要么是向左移动一单位,要么是向右移动一单位。
对于每个 $i$($1 \leq i \leq k$),输出在前 $i$ 条指令执行后,仍然存活的机器人数量。
输入格式
输入的第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。
每个测试用例的第一行包含三个整数 $n, m, k$($1 \le n, m, k \le 2 \cdot 10^5$)——机器人数量、尖刺数量和指令数。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$),表示机器人的位置。保证所有 $a$ 均互不相同。
第三行包含 $m$ 个整数 $b_1, b_2, \ldots, b_m$($0 \le b_i \le 10^9$),表示尖刺的位置。保证所有 $b$ 均互不相同。
第四行包含一个长度为 $k$ 的字符串,表示传递给机器人的指令。每个字符为 $\texttt{L}$(向左移动一位)或 $\texttt{R}$(向右移动一位)。
保证所有测试用例中,$n, m, k$ 的总和不超过 $2 \cdot 10^5$。
额外约束:保证没有机器人和尖刺处于同一位置。
输出格式
输出 $k$ 个整数,第 $i$ 个整数表示前 $i$ 条指令执行后存活的机器人数量。
对于 Python 用户,提交时请务必选择 PyPy3/PyPy2,而不是 Python3/Python2。
说明/提示
对于第一个测试用例:
- 第一个机器人将依次移动到 $0 \rightarrow -1 \rightarrow 0 \rightarrow 1$,因此不会死亡。
- 第二个机器人将依次移动到 $1 \rightarrow 0 \rightarrow 1 \rightarrow 2$,所以在第三条指令执行后会死亡,因为 $2$ 处有尖刺。
对于第二个测试用例,两个机器人在移动一次后都会死亡。
由 ChatGPT 5 翻译