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

Задача . D. Точки и степени двойки


На координатной прямой заданы \(n\) точек с различными целочисленными координатами, координата \(i\)-й точки равна \(x_i\). Выберите такое наибольшее по количеству точек подмножество заданного множества точек, что расстояния между любой парой точек в этом подмножестве — степень двойки. Следует рассматривать все возможные пары точек из подмножества, а не только соседние. Заметим, что любое подмножество из одного элемента удовлетворяет описанному выше требованию.

Иными словами, нужно выбрать такое наибольшее подмножество точек \(x_{i_1}, x_{i_2}, \dots, x_{i_m}\), что для любой пары \(x_{i_j}\), \(x_{i_k}\) должно выполняться, что \(|x_{i_j} - x_{i_k}| = 2^d\), где \(d\) — целое неотрицательное число. Это число может быть различным для разных пар точек.

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

В первой строке входных данных задано целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество точек.

В следующей строке задано \(n\) различных целых чисел \(x_1, x_2, \dots, x_n\) (\(-10^9 \le x_i \le 10^9\)) — координаты точек.

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

В первой строке выведите \(m\) — количество точек в наибольшем по размеру подмножестве, которое удовлетворяет описанному в условии ограничению.

В следующей строке выведите \(m\) целых чисел — координаты точек из этого подмножества.

Если решений несколько, выведите любое из них.

Примечание

В первом примере ответ равен \([7, 3, 5]\). Заметим, что \(|7-3|=4=2^2\), \(|7-5|=2=2^1\) и \(|3-5|=2=2^1\). Не существует подмножества с большим количеством точек, удовлетворяющего условию задачи.


Примеры
Входные данныеВыходные данные
1 6
3 5 4 7 10 12
3
7 3 5
2 5
-1 2 5 8 11
1
8

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

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