CF1555B Two Tables
题目描述
你有一个边与坐标轴平行的矩形房间,宽度为 $W$,高度为 $H$,左下角在点 $(0, 0)$,右上角在点 $(W, H)$。
房间里有一张矩形桌子,桌子的边也与房间的墙壁平行,左下角在 $(x_1, y_1)$,右上角在 $(x_2, y_2)$。
你还想在房间里再放一张矩形桌子,这张桌子的宽度为 $w$,高度为 $h$,且桌子的宽度与房间的宽度平行。
问题在于,有时候没有足够的空间在不与第一张桌子相交的情况下放下第二张桌子(桌子之间接触是允许的)。
你不能旋转任何一张桌子,但你可以在房间内移动第一张桌子。

上图展示了你可以如何移动第一张桌子。你需要移动第一张桌子的最小距离,使得能够为第二张桌子腾出足够的空间?
输入格式
第一行包含一个整数 $t$($1 \le t \le 5000$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $W$ 和 $H$($1 \le W, H \le 10^8$),表示房间的宽度和高度。
第二行包含四个整数 $x_1, y_1, x_2, y_2$($0 \le x_1 < x_2 \le W$;$0 \le y_1 < y_2 \le H$),表示第一张桌子的左下角和右上角的坐标。
第三行包含两个整数 $w$ 和 $h$($1 \le w \le W$;$1 \le h \le H$),表示第二张桌子的宽度和高度。
输出格式
对于每个测试用例,输出你需要移动第一张桌子的最小距离。如果无论如何都无法为第二张桌子腾出足够的空间,则输出 $-1$。
你的答案如果绝对误差或相对误差不超过 $10^{-6}$,则被认为是正确的。
说明/提示
第一个测试用例的配置如图所示。但图中桌子的移动不是最优的。例如,一种最优的移动方式是将桌子向 $(0, -1)$ 移动,使左下角从 $(2, 1)$ 移动到 $(2, 0)$。然后你可以将第二张桌子放在 $(0, 3)-(4, 5)$。
在第二个测试用例中,无论如何都无法让两张桌子不相交地放在房间里。
在第三个测试用例中,你可以将第一张桌子向 $(0, 2)$ 移动,使左下角从 $(0, 3)$ 移动到 $(0, 5)$。
由 ChatGPT 4.1 翻译