EduBrick

Точки пересечения прямой и окружности

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

Прямая задана уравнением Ax+By+C=0Ax + By + C = 0. Найдите её общие точки с окружностью.

В классной задаче требовалось только их количество, и всё решалось в целых числах. Здесь нужны сами координаты - а значит, без корней уже не обойтись.

Формат ввода

В первой строке - число запросов qq (1≤q≤1041 \le q \le 10^4).

В каждой из следующих qq строк - шесть чисел: центр окружности, радиус, затем AA, BB, CC. Числа целые, по модулю не превосходят 10410^4, радиус положителен, AA и BB не равны нулю одновременно.

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

Для каждого запроса выведите число общих точек, а затем их координаты - по одной в строке.

Если точек две, первой выведите ту, у которой меньше xx, а при равных xx - меньше yy. Точность 10−610^{-6}.

Примеры

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