SP231 ZEBRA - The Zebra Crossing
题目描述
你有没有想过,为什么人们在人行横道上会相互碰撞?从科学的角度来看,分析这个问题可能比较复杂,但我们可以试着猜测一些原因。似乎有一部分问题是,因为面对红灯时,普通行人通常会有两种反应:要么立即冲过去(这种行人往往更容易和汽车发生碰撞,不是我们的关注点),要么立即停下,直到绿灯亮起。他们在绿灯亮起后才开始理性地行动,寻找最短路径快速穿过马路。由于往往需要斜着过马路,他们很可能会与那些朝不同方向行走的人相撞。
某一天,当你走向你经常经过的交通信号灯时,你开始思索:如果真的想撞人,最多能跟多少人碰到?所有行人都在街道同一侧的各个位置。根据观察,你可以确定每个行人的过马路角度和速度。你可以选择在哪个位置准备过马路(除了已有行人占据的位置外的任意实数坐标),还可以决定以何种角度和速度过马路。你的速度有一个上限。
假设绿灯亮起后,所有行人都沿直线以恒定速度运动,并且即便发生了碰撞,他们也不受影响,继续前进。为了不引起怀疑,你也必须按这些规则行事。只有当某一时刻你的 xy 坐标与其他某个行人完全重合时,才会发生碰撞。
输入格式
输入首先包含一个整数 $t$,表示测试用例的数量($t \leq 100$)。接下来是 $t$ 个测试用例。
每个测试用例第一行包含三个整数 $n, w, v$,分别表示除你之外希望过马路的人数、道路的宽度(以米为单位)和你能行走的最大速度(以每秒米为单位)($1 \leq n \leq 10000, 1 \leq w \leq 100, 1 \leq v \leq 10000$)。接下来的 $n$ 行中,每行有三个整数 $x_i, t_i, a_i$,分别描述第 $i$ 个行人的起始位置(以米为单位)、过马路所需时间(以秒为单位)以及相对于街道正交方向的行走角度(以 1/60 度为单位)($-10000 \leq x_i \leq 10000, 1 \leq t_i \leq 10000, -5000 \leq a_i \leq 5000$)。
输出格式
对于每个测试用例,输出一个整数,表示在你到达街对面前最多能与多少人发生碰撞。
**本翻译由 AI 自动生成**