EduBrick

Дойти, коснувшись прямой

2000 мс · 256 МБ · всё или ничего

Даны точки AA и BB и прямая, заданная двумя различными точками PP и QQ. Найдите длину кратчайшего пути из AA в BB, который хотя бы в одной точке касается прямой. Пересекать прямую разрешено.

Формат ввода

В первой строке qq (1≤q≤1051 \le q \le 10^5). В каждой из следующих qq строк восемь целых чисел: xAx_A, yAy_A, xBx_B, yBy_B, xPx_P, yPy_P, xQx_Q, yQy_Q (∣x∣,∣y∣≤104|x|, |y| \le 10^4). Точки PP и QQ различны.

Формат вывода

Для каждого запроса выведите длину кратчайшего пути.

Ответ принимается с абсолютной или относительной погрешностью 10−610^{-6}.

Примеры

ввод
1
0 10 20 10 0 0 1 0
вывод
28.284271247
ввод
2
0 10 20 -10 0 0 1 0
0 0 5 5 0 0 1 1
вывод
28.284271247
7.071067812
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.