#HK6978. 「ICPC World Finals 2024」麦克斯韦妖

「ICPC World Finals 2024」麦克斯韦妖

题目描述

请放心:解决这个问题不需要任何热力学知识。

麦克斯韦妖位于一个高为 hh、宽为 2w2w 的容器中。容器被分成两个相邻的腔室,每个腔室的高为 hh,宽为 ww。两个腔室之间有一堵无法穿透的墙隔开,麦克斯韦妖固定在这堵中心墙上的某个位置。

腔室内有粒子,每个粒子具有位置、速度和颜色。当一个粒子撞击腔室的墙壁时,它会以完美的弹性反射。图 H.1 显示了一个包含两个粒子的容器,左腔室有一个蓝色粒子,右腔室有一个红色粒子。

图 H.1:第一个示例输入。麦克斯韦妖在图中以灰色放大显示,而实际上它无限小(也没有脸)。

麦克斯韦妖希望通过对粒子进行分类来降低熵值。它希望所有红色粒子都在左腔室,而所有蓝色粒子都在右腔室。为此,它拥有一种特殊能力:当粒子撞击到妖所在的位置时,它可以让粒子穿过中心墙。

腔室的底部位于 xx 轴上,中间的分隔墙沿着正 yy 轴方向。在妖选择的任意时刻,所有位于妖的位置 (0,d)(0, d) 的粒子不会被中心墙反射,而是会穿过墙进入另一个腔室,并保持其速度不变。妖可以随时且多次执行此操作,也可以选择不让粒子通过,即使粒子撞击到了妖的位置。然而,如果多个粒子同时位于位置 (0,d)(0, d),则要么所有这些粒子都穿过中心墙,要么所有粒子都被反射。

请帮助麦克斯韦妖对粒子进行分类并降低熵值!最早在什么时间可以实现所有红色粒子都在左腔室、所有蓝色粒子都在右腔室的状况?

输入格式

第一行包含五个整数 w,h,d,r,bw, h, d, r, b,其中 wwhh (2w,h200)(2 \leq w, h \leq 200) 分别是每个腔室的宽度和高度,dd (0dh)(0 \leq d \leq h) 是妖在容器中心墙上的 yy 坐标,rrbb0r,b0 \leq r, b1r+b2001 \leq r+b \leq 200)分别是红色粒子和蓝色粒子的数量。

接下来有 r+br+b 行,每行描述一个粒子,使用四个整数 px,py,vx,vyp_{x}, p_{y}, v_{x}, v_{y},其中 (px,py)(p_{x}, p_{y}) (0<px<w,0<py<h)(0 < |p_{x}| < w, 0 < p_{y} < h) 是粒子的初始位置,(vx,vy)(v_{x}, v_{y}) $(|v_{x}| < w, |v_{y}| < h, (v_{x}, v_{y}) \neq (0,0))$ 是粒子的初始速度。前 rr 个描述的粒子是红色的,其余的是蓝色的。

输出格式

输出实现所有红色粒子在左腔室、所有蓝色粒子在右腔室所需的最短时间。你的答案和标准答案绝对或相对误差不应超过 10610^{-6}。如果在有限时间内无法实现所有红色粒子在左腔室、所有蓝色粒子在右腔室的情况,则输出 impossible

7 4 1 1 1
2 1 4 1
-3 1 2 0

24.0

4 4 1 2 2
3 1 2 2
-2 3 -2 -1
3 2 1 -2
-2 2 2 2
impossible