Олимпиадный тренинг

Задача . G. Геолокация


Задача

Темы: геометрия *3400

Вы работаете на компанию Гриззл в Пауни, штат Индиана.

Недавно возле Пауни открылся новый национальный парк и перед вами была поставлена задача разработать систему геопозиционирования, чтобы люди в нём не заблудились. Концепция, которую вы разработали, инновационна и минималистична. В парке будет установлено \(n\) антенн. Когда кто-то захочет узнать своё местонахождение, их гриззлфон свяжется с антеннами и узнает расстояния от текущей позиции пользователя до всех антенн.

Зная эти расстояния и местонахождение антенн, восстановить местонахождение пользователя должно быть просто... Ведь так? Ну, почти. Единственная проблема заключается в том, что вы не знаете, какой антенне соответствует каждое из расстояний. Ваша задача – определить местонахождение пользователя, зная только местонахождение всех антенн и мультимножество расстояний до них.

Входные данные

Первая строка ввода содержит единственное целое число \(n\) (\(2 \leq n \leq 10^5\)), количество антенн.

Следующие \(n\) строк содержат координаты антенн, \(i\)-я строка содержит два целых числа \(x_i\) и \(y_i\) (\(0 \leq x_i,y_i \leq 10^8\)). Гарантируется, что все местонахождения антенны различны.

Следующая строка содержит единственное целое число \(m\) (\(1 \leq n \cdot m \leq 10^5\)), количество запросов на определение местонахождения пользователя.

Следующие \(m\) строк содержат \(n\) целых чисел \(0 \leq d_1 \leq d_2 \leq \dots \leq d_n \leq 2 \cdot 10^{16}\) каждая. Эти числа образуют мультимножество квадратов расстояний от местонахождения пользователя \((x;y)\) до всех антенн.

Для всех тестов, кроме примеров, гарантируется, что во всех запросах местонахождения пользователя \((x;y)\) были выбраны равномерно и независимо друг от друга среди всех возможных целочисленных точек, таких что \(0 \leq x, y \leq 10^8\).

Выходные данные

Для каждого запроса выведите сначала число \(k\) – количество возможных местонахождений пользователя, а затем список из этих точек в лексикографическом порядке.

Гарантируется, что сумма \(k\) по всем запросам не превосходит \(10^6\).

Примечание

Как можно видеть во втором примере — хотя местонахождение пользователя и выбирается так, чтобы иметь неотрицательные координаты, вам необходимо вывести все возможные целочисленные координаты.


Примеры
Входные данныеВыходные данные
1 3
0 0
0 1
1 0
1
1 1 2
1 1 1
2 4
0 0
0 1
1 0
1 1
2
0 1 1 2
2 5 5 8
4 0 0 0 1 1 0 1 1 
4 -1 -1 -1 2 2 -1 2 2

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python3
С++ Mingw-w642
Комментарий учителя