题目描述:
在坐标轴上有
n 个不同的点,第
i 个点的坐标为
x[ i]
。选择这些点的一个子集,使得子集中任意两点之间的距离都是 2 的整数次幂。需要考虑子集中的每一对点,而不仅仅是相邻的点。在所有这些子集中,输出元素最多的子集。注意,如果任意两点都不满足上述条件,子集大小设置为1。
换句话说,你需要选择尽可能多的点
1
,
2
,
…
,
x
i
1
,x
i
2
,…,x
i
m
,使得对于每一对点
x
i
j
,
x
i
k
,都满足
∣
−
∣=
2
∣x
i
j
−x
i
k
∣=2
d
的条件,其中
d 是非负整数(对于每一对点不一定相同)。
输入描述
第一行包含一个整数
n (
1
≤
≤
2
×
1
0
5
1≤n≤2×10
5
),表示点的数量。
第二行包含
n 个两两不同的整数
1
,
2
,
…
,
x
1
,x
2
,…,x
n
(
−
1
0
9
≤
≤
1
0
9
−10
9
≤x
i
≤10
9
),表示每个点的坐标。
输出描述
第一行一个整数
m ,表示 满足上述条件的子集中点的最大可能数量。
第二行
m 个整数 ,输出子集中点的坐标。如果有多个子集同时满足条件,按照升序输出子集中最小元素最小的那个子集的所有元素,以空格隔开。