EduBrick

Пересекаем окружности

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

Даны две окружности. Определите, сколько у них общих точек, и найдите эти точки.

Формат ввода

В первой строке tt (1≤t≤1041 \le t \le 10^4) — количество тестов. Каждый тест — две строки по три целых числа: координаты центра и радиус первой окружности, затем второй. Координаты по модулю не превосходят 10410^4, радиусы от 11 до 10410^4.

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

Для каждого теста выведите количество общих точек (00, 11, 22 или 33, если их бесконечно много).

При одной общей точке выведите во второй строке её координаты. При двух — во второй строке координаты точки HH (основания перпендикуляра из точек пересечения на линию центров), в третьей длины ∣O1H∣|O_1H| и ∣HP∣|HP|, а в следующих двух строках сами точки в любом порядке.

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

Примеры

ввод
4
3 4 5
11 4 2
3 4 5
11 4 3
3 4 5
11 4 4
3 4 5
3 4 5
вывод
0
1
8.000000000 4.000000000
2
7.562500000 4.000000000
4.562500000 2.045383521
7.562500000 6.045383521
7.562500000 1.954616479
3
ввод
2
0 0 1
0 3 1
0 0 5
0 0 3
вывод
0
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.