CF2108B SUMdamental Decomposition
题目描述
在最近的一次生日中,你最好的朋友 Maurice 给了你一对数字 $n$ 和 $x$,并要求你构造一个长度为 $n$ 的正数数组 $a$,使得 $a_1 \oplus a_2 \oplus \cdots \oplus a_n = x$ $^{\text{∗}}$。
这个任务对你来说太简单了,因此你决定给 Maurice 一个回礼:在所有满足条件的数组中,构造一个元素和最小的数组。你立刻想到了一个合适的数组;然而,由于把它写下来太费时间,Maurice 只能得到它的元素和。
$^{\text{∗}}$ $\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 10^4$)。接下来是测试用例的描述。
每个测试用例由一行组成,包含两个数字 $n$ 和 $x$($1 \le n \le 10^9$,$0 \le x \le 10^9$)——Maurice 给你的数字。
输出格式
对于每个测试用例,输出你给 Maurice 的礼物——满足所有描述性质的数组的元素和。如果不存在这样的数组,输出 $-1$。
说明/提示
在第一个测试用例中,一个合适的数组是 $[2, 3]$。可以证明无法获得更小的数组元素和。
在第二个测试用例中,一个合适的数组是 $[1, 3, 4]$。同样可以证明这是最优的和。
翻译由 DeepSeek V3 完成