CF1775C Interesting Sequence

题目描述

Petya 和他的朋友,机器人 Petya++,喜欢解决有趣的数学问题。 有一天,Petya++ 想到了两个数字 $n$ 和 $x$,并在黑板上写下了如下等式:$n\ \&\ (n+1)\ \&\ \dots\ \&\ m = x$,其中 $\,\&\,$ 表示按位与运算。然后他让他的朋友 Petya 找出满足等式的最小 $m$($m \ge n$)。 不幸的是,Petya 无法在脑海中解决这个问题,于是决定借助计算机。他很快写了一个程序并找到了答案。 你能解决这个难题吗? ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1775C/3708862555546ebb5c352c2d2207eacbd490398b.png)

输入格式

每组测试包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 2000$)。 接下来的每组测试用例包含一行,包含两个整数 $n$ 和 $x$($0 \le n, x \le 10^{18}$)。

输出格式

对于每个测试用例,输出满足等式的最小可能的 $m$。 如果不存在任何 $m$ 使得等式成立,则输出 $-1$。 可以证明,如果所需的 $m$ 存在,则 $m$ 不会超过 $5 \cdot 10^{18}$。

说明/提示

在第一个样例中,$10\ \&\ 11 = 10$,但 $10\ \&\ 11\ \&\ 12 = 8$,所以答案是 $12$。 在第二个样例中,$10 = 10$,所以答案是 $10$。 在第三个样例中,可以看出不存在所需的 $m$,因此应输出 $-1$。 由 ChatGPT 4.1 翻译