CF652F Ants on a Circle

题目描述

有 $n$ 只蚂蚁在一个长度为 $m$ 的圆环上,每只蚂蚁每单位时间移动 1 个单位距离。最初,第 $i$ 只蚂蚁位于位置 $s_{i}$,朝向 $d_{i}$($d_{i}$ 取 L 或 R)。位置按逆时针方向从某个点开始编号。所有蚂蚁的位置互不相同。 所有蚂蚁同时移动,每当两只蚂蚁相遇时,它们都会改变行进方向。注意,一只蚂蚁可以在某个时刻朝某个方向行进半个单位时间,随后再沿相反方向行进半个单位时间。 请输出经过 $t$ 个单位时间后所有蚂蚁的位置。

输入格式

第 $1$ 行包含三个整数 $n$、$m$ 和 $t$($2 \le n \le 3 \cdot 10^{5},\ 2 \le m \le 10^{9},\ 0 \le t \le 10^{18}$),分别表示蚂蚁的数量、圆环的长度和时间长度。 接下来的 $n$ 行,每行包含一个整数 $s_{i}$ 和一个字符 $d_{i}$($1 \le s_{i} \le m$,$d_{i}$ 为 L 或 R),表示第 $i$ 只蚂蚁的初始位置和初始方向。L 表示顺时针方向,R 表示逆时针方向。 保证所有 $s_{i}$ 两两不同。

输出格式

输出 $n$ 个整数 $x_{j}$,分别表示第 $j$ 只蚂蚁在 $t$ 单位时间后的最终位置。蚂蚁按输入顺序编号。

说明/提示

由 ChatGPT 5 翻译