[AGC013C] Ants on a Circle

题意翻译

有一个长度为 $L$ 的圆环,上面有 $N$ 个蚂蚁,位置分别为 $x_i$,运动方向为 $d_i$,$1$ 表示顺时针,$2$ 表示逆时针。 每只蚂蚁将会同时开始以单位速度运动,如果两只蚂蚁相遇, 那么它们会改变自己的方向继续运动。 求 $T$ 秒之后每只蚂蚁的位置。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc013/tasks/agc013_c 周の長さ $ L $ の円があります。 この円の周上には座標が設定されていて、座標の値は、ある基準点からどれだけ時計回りに進んだかを表しています。 この円周上に $ N $ 匹の蟻がいます。 蟻には、座標の小さいものから順に、$ 1 $ から $ N $ までの番号がついています。 $ i $ 番目の蟻は座標 $ X_i $ にいます。 これから、$ N $ 匹の蟻は一斉に動き出します。 $ i $ 匹目の蟻は、$ W_i $ が $ 1 $ なら時計回りに、$ W_i $ が $ 2 $ なら反時計回りに動き始めます。 全ての蟻の移動速度は常に、$ 1 $ 秒間にちょうど $ 1 $ の距離を進む速さです。 蟻が動いていくと、二つの蟻がぶつかることがあります。 その時はどちらの蟻も、ぶつかった瞬間に進む向きを反転して動き続けます。 蟻が動き始めてから $ T $ 秒後にそれぞれの蟻がいる位置を求めて下さい。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ L $ $ T $ $ X_1 $ $ W_1 $ $ X_2 $ $ W_2 $ $ : $ $ X_N $ $ W_N $

输出格式


出力は $ N $ 行からなる。 出力の $ i $ 行目には、$ i $ 番目の蟻が $ T $ 秒後にいる位置の座標を出力せよ。 なお、座標の値は $ 0 $ 以上 $ L $ 未満の値として出力せよ。

输入输出样例

输入样例 #1

3 8 3
0 1
3 2
6 1

输出样例 #1

1
3
0

输入样例 #2

4 20 9
7 2
9 1
12 1
18 1

输出样例 #2

7
18
18
1

说明

### 制約 - 入力は全て整数である - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ 1\ \leq\ L\ \leq\ 10^9 $ - $ 1\ \leq\ T\ \leq\ 10^9 $ - $ 0\ \leq\ X_1\ <\ X_2\ <\ ...\ <\ X_N\ \leq\ L\ -\ 1 $ - $ 1\ \leq\ W_i\ \leq\ 2 $ ### Sample Explanation 1 蟻が動き始めてから $ 1.5 $ 秒後、蟻 $ 1 $ と 蟻 $ 2 $ が、座標 $ 1.5 $ の位置でぶつかります。 その $ 1 $ 秒後、蟻 $ 1 $ と蟻 $ 3 $ が、座標 $ 0.5 $ の位置ぶつかります。 その $ 0.5 $ 秒後、つまり蟻が動き始めてから $ 3 $ 秒後には、 蟻 $ 1 $ 、$ 2 $ 、$ 3 $ はそれぞれ座標 $ 1 $ 、$ 3 $ 、$ 0 $ にいます。