eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Круги

Круги

На плоскости задано \textbf{N} кругов. Требуется ответить на \textbf{Q} запросов. \textbf{i}-ый запрос заключается в том, что сначала нужно для круга номер \textbf{t_i} найти количество других кругов, с каждым из которых он имеет хотя бы одну общую точку. Далее нужно переместить круг \textbf{t_i} в новое место на плоскости. Под кругом понимается окружность и все точки внутри нее. \textbf{seed_k=(31 313 131 * seed_\{k-1\} + 13 131 313) mod 1 000 000 007} Чтобы получить очередное значение необходимых для задачи данных, надо взять очередной элемент последовательности \textbf{\{seed_k\}}. Обозначим это действие как \textbf{nextint()}. Данные генерируются в таком порядке: \includegraphics{https://static.e-olymp.com/content/b2/b29e016a2eb442bce4ff63ebd6ed12e76dd01040.jpg} Где \textbf{x_i} и \textbf{y_i} - начальные координаты \textbf{i}-го круга, \textbf{r_i} - радиус \textbf{i}-го круга. \textbf{t_j} - номер интересующего круга в \textbf{j}-ом запросе. \textbf{new_x_j} и \textbf{new_y_j} - новые координаты центра, которые получит круг \textbf{t_j} после выполнения \textbf{j}-го запроса. Круги нумеруются начиная с \textbf{1} в порядке генерации. \InputFile Три целых числа: \textbf{N}, \textbf{Q} и \textbf{seed_0} (\textbf{1} ≤ \textbf{N} ≤ \textbf{1000000}, \textbf{1} ≤ \textbf{Q} ≤ \textbf{100000}, \textbf{0} ≤ \textbf{seed_0} ≤ \textbf{1000000006}) - количество кругов, количество запросов и нулевой элемент последовательности псевдослучайных чисел. Отметим, что генерация начинается с первого элемента, то есть, \textbf{x_\{1 \}= seed_1 mod 1000000}. \OutputFile \textbf{Q} строк. \textbf{i}-ая строка должна содержать одно целое число - количество кругов, с которыми на момент выполнения \textbf{i}-го запроса пересекается круг номер \textbf{t_i}. Отметим, что необходимо сначала найти ответ на запрос, а после этого задать кругу новое положение. В процессе запросов радиусы кругов не меняются. Изменение положения кругов влияет на дальнейшие запросы, то есть, каждый следующий запрос выполняется с учетом всех предыдущих перемещений.
Лимит времени 4 секунды
Лимит использования памяти 256 MiB
Входные данные #1
1000000 10 0
Выходные данные #1
3
3
1
2
5
2
2
1
5
0
Автор Александр Миланин
Источник Летняя школа Севастополь 2013, Волна 2, День 3