EduBrick

Касательные из точки

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

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

Точка может лежать снаружи, на окружности и внутри неё.

Формат ввода

В первой строке qq (1≤q≤1051 \le q \le 10^5). В каждой из следующих qq строк пять целых чисел: xOx_O, yOy_O, RR (1≤R≤1041 \le R \le 10^4) и координаты точки PP. Координаты по модулю не превосходят 10410^4.

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

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

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

Примеры

ввод
2
2 2 2 2 5
10 10 10 20 20
вывод
2
0.509288015 3.333333333
3.490711985 3.333333333
2
10.000000000 20.000000000
20.000000000 10.000000000
ввод
2
0 0 5 0 0
0 0 5 5 0
вывод
0
1
5.000000000 0.000000000
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.