#P16879. [GKS 2022 #C] Ants on a Stick

[GKS 2022 #C] Ants on a Stick

题目描述

Ada 有 NN 只蚂蚁,编号为 11NN。她决定测试 John 的专注力。她取一根长度为 LL 厘米的棍子,并将蚂蚁释放到棍子上。

蚂蚁释放的位置由一个整数数组 PP 表示,其中蚂蚁 ii 被释放的位置为 PiP_i(即距离棍子左端 PiP_i 厘米)。每只蚂蚁以每秒 11 厘米的恒定速度向左或向右移动。蚂蚁的初始方向由数组 DD 表示,其中蚂蚁 ii 的方向为 DiD_i00 表示向左,11 表示向右。当两只蚂蚁相遇时,它们会弹开并反转方向。蚂蚁到达棍子的任一端时就会掉落。

Ada 挑战 John 找出蚂蚁掉落的准确顺序。John 需要你的帮助!

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含两个整数 NNLL:蚂蚁的数量和棍子的长度。

接下来的 NN 行描述每只蚂蚁的位置和方向。第 ii 行包含两个整数 PiP_iDiD_i:蚂蚁 ii 的位置和方向。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: A1 A2 ... AN,其中 xx 是测试用例编号(从 11 开始),AiA_i 是第 ii 只掉落的蚂蚁的标签。换句话说,第一个掉落的蚂蚁是标签为 A1A_1 的蚂蚁,第二个是标签为 A2A_2 的蚂蚁,以此类推。如果多只蚂蚁同时掉落,则按标签的升序输出。

3
1 5
1 1
2 7
4 1
5 0
4 10
8 0
2 1
6 1
4 0
Case #1: 1
Case #2: 2 1
Case #3: 1 2 3 4

提示

在样例 #1 中,只有一只蚂蚁(标签为 11),它是唯一掉落的蚂蚁。它掉落的时间为 44 秒。

在样例 #2 中,两只蚂蚁相向而行,在 0.50.5 秒时相遇并反转方向。蚂蚁 22 随后在 33 秒时到达棍子右端,而蚂蚁 1155 秒时到达左端。因此,蚂蚁 22 先掉落,然后是蚂蚁 11

在样例 #3 中,蚂蚁 2244 相向而行,在 11 秒时相遇。同样,蚂蚁 1133 也相向而行,在 11 秒时相遇。所有 44 只蚂蚁随后改变方向。

  • 蚂蚁 1122 移向棍子的两端,并在 44 秒时掉落。
  • 蚂蚁 3344 相向而行,在 33 秒时相遇。它们改变方向后移向两端,并在 88 秒时掉落。

限制条件

1T1001 \le T \le 100

N<LN < L

对于所有 iiDi{0,1}D_i \in \{0, 1\}

对于所有 ii0<Pi<L0 < P_i < L

所有 PiP_i 互不相同。

测试集 1

1N101 \le N \le 10

1L1001 \le L \le 100

测试集 2

1N1031 \le N \le 10^3

1L1091 \le L \le 10^9

测试集 3

1L1091 \le L \le 10^9

最多 1515 个测试用例满足:

1N1051 \le N \le 10^5

其余测试用例满足:

1N1031 \le N \le 10^3

翻译由 DeepSeek V4 Pro 完成