Рассмотрим прямоугольную комнату, стороны которой параллельны осям координат, с шириной $$$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}$$$.
5 8 5 2 1 7 4 4 2 5 4 2 2 5 4 3 3 1 8 0 3 1 6 1 5 8 1 3 0 6 1 5 1 8 10 4 5 7 8 8 5
1.000000000 -1 2.000000000 2.000000000 0.000000000
Стартовая конфигурация первого набора входных данных примера показана на картинке, но перемещение не является оптимальным. Оптимально будет, например, сместить первый стол на вектор $$$(0, -1)$$$, чтобы левый нижний угол сместился с $$$(2, 1)$$$ на $$$(2, 0)$$$. Тогда второй стол можно поставить по координатам $$$(0, 3)-(4, 5)$$$.
Во втором наборе входных данных невозможно поставить второй стол в комнату, как бы мы ни перемещали первый.
В третьем наборе входных данных можно сместить стол на вектор $$$(0, 2)$$$, чтобы левый нижний угол переместился из $$$(0, 3)$$$ в $$$(0, 5)$$$.
Название |
---|