#P15553. [CCPC 2025 哈尔滨站] 液压机
[CCPC 2025 哈尔滨站] 液压机
题目描述
在一个二维试验场中,以四条无限长直线作为可移动的“墙”:上下为水平线,左右为竖直线。放入一颗大小可忽略不计的小球后,小球做匀速直线运动;每当与某对平行墙中的一条发生接触,沿该法向方向进行反弹(仅改变该方向的速度符号),另一方向保持不变。上下两条水平线相向而行,左右两条竖直线相对而行,最终会在某一时刻合拢并将小球夹住。
给定小球的初始位置与速度,以及四条直线的初始位置与速度。你需要以上下两线相遇时刻为终止时刻,输出该时刻小球的坐标。
小球的初始位置记为 ,初始速度记为 。
下方的水平线和上方的水平线初始时分别位于 和 , 在经过时间 后移动到 和 。
左边的竖直线和右边的竖直线初始时分别位于 和 ,在经过时间 后移动到 与 。
保证初始时小球一定在四条直线围成的矩形内部,即 ,。
:::align{center}

样例初始情况 :::
我们保证每次碰撞都是小球先撞上墙,即保证小球在竖直方向的速度一定大于两条水平线的运动速度,。
为了保证上下两条线必定相遇,保证两条水平线的速度不同时为 。
发生碰撞时具体的规则如下:
- 小球在不接触任何直线时做匀速直线运动。
- 与水平线接触时,仅将纵向速度取相反数(把 变为 ),横向速度不变。
- 与竖直线接触时,仅将横向速度取相反数(把 变为 ),纵向速度不变。
- 反弹判定与直线的平移速度无关,仅按“取相反数”处理对应速度分量。
输入格式
题目包含多组测试数据。输入第一行包含一个整数 ,表示测试数据组数。
接下来依次输入每组测试数据,对于每组测试数据:
第一行包含四个整数 (, 、),分别表示小球的初始坐标以及初始速度。
第二行包含四个整数 (, , ),分别表示水平线的初始位置和运动速度。
第三行包含四个整数 (, ),分别表示竖直线初始位置和运动速度。
输出格式
对于每组数据输出一行两个用空格分隔的浮点数 ,表示小球终止时刻的坐标。
如果你的输出和标准答案的绝对误差或相对误差不超过 ,那么你的答案将会被判为正确。
换句话说假设你的答案是 ,标准答案为 ,则如果:
则你的答案会被视作正确的。
1
3 4 2 5
0 10 3 2
0 10 1 0
7.000000000000 6.000000000000
2
631043 768016 20 20
1 1000000 1 0
631040 631050 1 0
631044 768016 20 20
1 1000000 1 0
631041 631051 1 0
-0.456742460183 1000000.000000000000
0.543257539817 1000000.000000000000