EduBrick

D. Река

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

Монастырь стоит в точке MM, храм — в точке TT. Река — прямая Ax+By+C=0Ax + By + C = 0. Монах выходит из монастыря, набирает воду в реке (то есть попадает в какую-то точку прямой) и приходит в храм.

Река горная: перейти её вброд нельзя, и весь путь должен оставаться по одну сторону от прямой. Найдите длину кратчайшего пути.

Формат ввода

В первой строке qq (1≤q≤2⋅1041 \le q \le 2 \cdot 10^4). В каждой из следующих qq строк семь целых чисел: xMx_M, yMy_M, xTx_T, yTy_T, AA, BB, CC. Все числа по модулю не превосходят 10410^4, A2+B2>0A^2 + B^2 > 0.

Ни монастырь, ни храм не лежат на прямой.

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

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

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

Примеры

ввод
2
0 10 20 10 0 1 0
0 10 20 -10 0 1 0
вывод
28.284271247
No solution.
ввод
3
1 1 5 5 1 0 0
-3 -4 -5 -6 0 1 1
2 3 7 9 3 -4 5
вывод
7.211102551
8.246211251
7.912016178
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.