albus就是要第一个出场
给定一个长度为 n 的正整数序列 A,其下标从 1 开始。令
S={x∣1≤x≤n},
2S 表示 S 的幂集,即由 S 的所有子集构成的集合。定义映射 f:2S→Z:
f(∅)=0,
对于任意非空子集 T⊆S,有
f(T)=t∈T⨁At,
其中 ⊕ 表示按位异或。
计算 2S 中每个集合对应的 f 值,并将这些值按非降序排列,得到下标从 1 开始的序列 B。给定整数 Q,求 Q 在序列 B 中第一次出现的位置。
输入格式
第一行输入一个整数 n,表示序列 A 的长度。
第二行输入 n 个整数 A1,A2,…,An,相邻整数之间以空格分隔。
第三行输入一个整数 Q。
输出格式
输出一行一个整数。
若存在子集 T⊆S,使得
Q=t∈T⨁At,
则输出 Q 在按非降序排列的序列 B 中第一次出现的下标对 10086 取模后的值。序列 B 按多重集合计数,即不同子集产生的相同异或值均会保留。
若不存在满足条件的子集 T,输出 0。
样例输入
3
1 2 3
1
样例输出
3
数据范围
- 1≤n≤105;
- 1≤Ai≤109;
- 0≤Q≤109。
来源与许可
本题题面与测试数据整理自 BZOJ。
样例 1
输入
3
1 2 3
1
输出
3