| Codeforces Round 1048 (Div. 1) |
|---|
| Закончено |
Вам дана двумерная плоскость. Изначально две точки $$$P_1$$$ и $$$P_2$$$ расположены на координатах $$$(0,0)$$$ и $$$(1,0)$$$ соответственно и соединены отрезком. Вы можете рисовать треугольники, используя следующую операцию:
Обратите внимание, что каждая операция рисует одну новую точку и два новых отрезка.
Ваша задача — нарисовать точку с координатами $$$(p, q)$$$, используя не более $$$m = \left\lceil 2\sqrt{p^2 + q^2}\right\rceil$$$ операций, где $$$\lceil x\rceil$$$ — это наименьшее целое число, большее или равное $$$x$$$. Гарантируется, что $$$p$$$ и $$$q$$$ — положительные целые числа.
Из-за возможных ошибок округления:
Обратите внимание, что целевая точка может быть создана до последней операции (см. второй набор входных данных).
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$p$$$, $$$q$$$ и $$$m$$$ ($$$1\le p, q\le 10^4$$$, $$$m = \left\lceil 2\sqrt{p^2 + q^2}\right\rceil$$$) — координаты $$$x$$$ и $$$y$$$ целевой точки и максимальное количество операций, которые вам разрешено выполнить, соответственно.
Гарантируется, что сумма значений $$$m$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора входных данных выведите одно целое число $$$n$$$ ($$$0\le n\le m$$$), представляющее количество использованных операций.
Затем выведите $$$n$$$ строк, описывающих операции. $$$i$$$-я из следующих $$$n$$$ строк должна содержать четыре значения: два целых числа $$$u$$$ и $$$v$$$ ($$$1\le u,v\le i+1,u\neq v$$$) — идентификаторы двух выбранных точек, за которыми следуют два вещественных числа $$$x$$$ и $$$y$$$ ($$$-2\cdot 10^4\le x,y\le 2\cdot 10^4$$$) — координаты новой точки.
Идентификаторы присваиваются следующим образом:
Если существует несколько допустимых решений, которые используют не более $$$m$$$ операций, вы можете вывести любое из них.
21 1 33 1 7
2 1 2 0.5 0.8660254037844386 2 3 1 1 7 1 2 0.5 0.5 2 3 1.1339745962156 0.5 4 2 1.8660254037844 0.5 4 5 2 1 5 6 2.5 0.5 6 7 3 1 6 7 2.5 1
В первом наборе входных данных вы можете выполнить не более $$$\lceil 2\sqrt{2}\rceil=3$$$ операций. Следующее решение использует только две операции:
Во втором случае вы можете выполнить не более $$$\left\lceil 2\sqrt{10}\right\rceil=7$$$ операций.
В решении, показанном ниже, точки $$$P_4$$$ и $$$P_5$$$ находятся по координатам $$$\left(2-\frac{\sqrt{3}}{2},\frac{1}{2}\right)$$$ и $$$\left(1+\frac{\sqrt{3}}{2},\frac{1}{2}\right)$$$ соответственно, и $$$|P_4P_6|=|P_2P_5|=1$$$. Можно проверить, что длина каждого отрезка находится в пределах $$$[0.5,1]$$$.
Обратите внимание, что последняя операция не является обязательной, и решение все равно будет правильным без последней операции.
| Название |
|---|


