#P2021. 0x30数学知识(0x35 高斯消元与线性空间)例题4:异或运算(负责人:张健维OK)

0x30数学知识(0x35 高斯消元与线性空间)例题4:异或运算(负责人:张健维OK)

Description

【题意】
给定你由N个整数构成的整数序列,你可以从中选取一些(甚至一个)进行异或(XOR)运算,从而得到很多不同的结果。
请问,所有能得到的不同的结果中第k小的结果是多少。

【输入格式】
第一行包含整数T,表示共有T组测试数据。
对于每组测试数据,第一行包含整数N。
第二行包含N个整数(均在1至10^18之间),表示完整的整数序列。
第三行包含整数Q,表示询问的次数。
第四行包含Q个整数k1,k2,…,kQ,表示Q个询问对应的k。

【输出格式】
对于每组测试数据,第一行输出“Case #C:”,其中C为顺序编号(从1开始)。
接下来Q行描述Q次询问的结果,每行输出一个整数,表示第i次询问中第ki小的结果。
如果能得到的不同结果的总数少于ki,则输出“-1”。

【数据范围】
1≤N,Q≤10000,
1≤ki≤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

【提示】
只选取一个数字进行运算,则结果为该数字本身。