3894: k 大异或和

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

这是一道模板题。 给由 $ n $ 个数组成的一个可重集 $ S $,每次给定一个数 $ k $,求一个集合 $ T \subseteq S $,使得集合 $ T $ 在 $ S $ 的所有非空子集的不同的异或和中,其异或和 $ T_1 \mathbin{\text{xor}} T_2 \mathbin{\text{xor}} \ldots \mathbin{\text{xor}} T_{|T|} $ 是第 $ k $ 小的。

输入

第一行一个数 $ n $。 第二行 $ n $ 个数,表示集合 $ S $。 第三行一个数 $ m $,表示询问次数。 第四行 $ m $ 个数,表示每一次询问的 $ k $。

输出

输出 $ m $ 行,对应每一次询问的答案,第 $ k $ 小的异或和。如果集合 $ S $ 的所有非空子集中,不同的异或和数量不足 $ k $,输出 $ -1 $。

样例输入 复制

3
1 2 3
5
1 2 3 4 5

样例输出 复制

0
1
2
3
-1

提示


数据范围:$ 1 \leq n, m \leq 10 ^ 5, 0 \leq S_i \leq 2 ^ {50} $

来源/分类