编程题
### 问题描述 新一最近在研究一种神秘的信号,这种信号是由一串长度为 $N$ 的数字序列 $A$ 表示的。然而,新一发现信号不完整,需要在数字序列 $A$ 的末尾追加一个非负整数 $X$,然后通过特殊的按位或操作,使得整个数字序列的按位或结果(包括添加的整数 $X$)等于 $Y$。这里的按位或操作是指对数字的二进制形式进行的操作,举个例子,如果有两个数字 3(二进制形式为 011)和 5(二进制形式为 101),那么它们的按位或结果就是 7(二进制形式为 111)。 新一想要找到能使整个数字序列的按位或结果等于 $Y$ 的 $X$ 的最小值。如果不存在这样的 $X$,他便会认为这个信号序列是错误的。 你能帮助新一解决这个问题吗? ### 输入格式 第一行包含两个整数 $N$ 和 $Y$ —— 数组 $A$ 的大小和数组 $A$ 的最终按位或结果。 第二行包含 $N$ 个用空格分隔的整数 $A_1, A_2, ..., A_N$,表示数字序列 $A$。 数据范围保证:$1 \leq N \leq 10^5$,$0 \leq A_i,Y < 20^{20}$。 ### 输出格式 输出使 $(A_1 ∣ A_2 ∣ ... ∣ A_N ∣ X) = Y$ 成立的 $X$ 的最小可能值。 如果不存在这样的值,输出 -1。 ### 样例输入 ```text 3 7 1 2 3 ``` ### 样例输出 ```text 4 ``` 这个例子中,新一的数字序列 $A$ 是 $[1,2,3]$,他希望通过添加一个整数 $X$,使得整个序列的按位或结果为 $7$。通过计算,我们可以发现,当 $X$ 最小为 $4$ 时,可以满足条件。所以输出为 $4$。
查看答案
赣ICP备20007335号-2