WAC210.异或运算

传统题 时间 2000 ms 内存 256 MiB 8 尝试 1 已通过 1 标签

异或运算

给定你由 NN 个整数构成的整数序列,你可以从中选取一些(至少一个)进行异或(xor\operatorname{xor})运算,从而得到很多不同的结果。

请问,所有能得到的不同的结果中第 kk 小的结果是多少。

输入格式

第一行包含整数 TT,表示共有 TT 组测试数据。

对于每组测试数据,第一行包含整数 NN

第二行包含 NN 个整数(均在 11101810^{18} 之间),表示完整的整数序列。

第三行包含整数 QQ,表示询问的次数。

第四行包含 QQ 个整数 k_1,k_2,,k_Qk\_1,k\_2,…,k\_Q,表示 QQ 个询问对应的 kk

输出格式

对于每组测试数据,第一行输出 Case #C:,其中 CC 为顺序编号(从 11 开始)。

接下来 QQ 行描述 QQ 次询问的结果,每行输出一个整数,表示第 ii 次询问中第 k_ik\_i 小的结果。

如果能得到的不同结果的总数少于 k_ik\_i,则输出 1-1

数据范围

1N,Q100001 \le N,Q \le 10000,

1k_i10181 \le k\_i \le 10^{18}

注意:只选取一个数字进行运算,则结果为该数字本身。

样例

2
2
1 2
4
1 2 3 4
3
1 2 3
5
1 2 3 4 5
Case #1:
1
2
3
-1
Case #2:
0
1
2
3
-1

在线编程 IDE

建议全屏模式获得最佳体验