#YDRS010D. 真假奶龙

真假奶龙

真假奶龙

"我是奶龙!"

"我才是奶龙!"

"我会喷火, 你会吗?"

"我还会变色呢!"

题目描述

nn 个奶龙,每个奶龙有权值 a1,a2,...,ana_1,a_2,...,a_n,你要从中选出 kk 对奶龙,每个奶龙最多在一对中。

一对奶龙的差异是两个数的异或和。为了尽可能让小七疑惑谁才是真正的奶龙,你需要让差异最大的一对奶龙的差距尽可能小。

对于所有 k=1,2,...,n2k=1,2,...,\lfloor\frac{n}{2}\rfloor,求出差异最大的奶龙的差异的最小值。

输入格式

第一行一个整数 nn,表示奶龙的数量。

第二行 nn 个整数 a1,a2,...,ana_1,a_2,...,a_n 表示每个奶龙的权值。

输出格式

n2\lfloor\frac{n}{2}\rfloor 行分别表示 k=1,2,...,n2k=1,2,...,\lfloor\frac{n}{2}\rfloor 时的答案。

样例 #1

样例输入 #1

7
1 2 3 4 6 10 114514

样例输出 #1

1
2
8

提示

对于前 20%20\% 的数据, n10n \le 10

对于另外 40%40\% 的数据 0ai<320 \le a_i \lt 32

对于全部数据,1n105,0ai1091 \le n \le 10^5,0 \le a_i \le 10^9