310043: CF1775C. Interesting Sequence

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Interesting Sequence

题意翻译

给两个数,$n$ 和 $x$,问是否存在 $m$,使得 $n \& n+1 \& …… \& m = x$,如果存在求出最小的 $m$,否则输出 $-1$。

题目描述

Petya and his friend, robot Petya++, like to solve exciting math problems. One day Petya++ came up with the numbers $ n $ and $ x $ and wrote the following equality on the board: $ $n\ \&\ (n+1)\ \&\ \dots\ \&\ m = x, $ $ where $ \\&amp; $ denotes the <a href="https://en.wikipedia.org/wiki/Bitwise_operation#AND">bitwise AND operation</a>. Then he suggested his friend Petya find such a minimal $ m $ ( $ m \\ge n$) that the equality on the board holds. Unfortunately, Petya couldn't solve this problem in his head and decided to ask for computer help. He quickly wrote a program and found the answer. Can you solve this difficult problem? ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1775C/3708862555546ebb5c352c2d2207eacbd490398b.png)

输入输出格式

输入格式


Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 2000 $ ). The description of the test cases follows. The only line of each test case contains two integers $ n $ , $ x $ ( $ 0\le n, x \le 10^{18} $ ).

输出格式


For every test case, output the smallest possible value of $ m $ such that equality holds. If the equality does not hold for any $ m $ , print $ -1 $ instead. We can show that if the required $ m $ exists, it does not exceed $ 5 \cdot 10^{18} $ .

输入输出样例

输入样例 #1

5
10 8
10 10
10 42
20 16
1000000000000000000 0

输出样例 #1

12
10
-1
24
1152921504606846976

说明

In the first example, $ 10\ \&\ 11 = 10 $ , but $ 10\ \&\ 11\ \&\ 12 = 8 $ , so the answer is $ 12 $ . In the second example, $ 10 = 10 $ , so the answer is $ 10 $ . In the third example, we can see that the required $ m $ does not exist, so we have to print $ -1 $ .

Input

题意翻译

给两个数,$n$ 和 $x$,问是否存在 $m$,使得 $n \& n+1 \& …… \& m = x$,如果存在求出最小的 $m$,否则输出 $-1$。

Output

题目大意:
给定两个数 $ n $ 和 $ x $,要判断是否存在一个数 $ m $,使得 $ n \& (n+1) \& \ldots \& m = x $。如果存在,求出最小的 $ m $;如果不存在,输出 $ -1 $。

输入输出数据格式:
输入格式:
每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $($ 1 \le t \le 2000 $)。接下来是每个测试用例的描述。
每个测试用例只有一行,包含两个整数 $ n $ 和 $ x $($ 0 \le n, x \le 10^{18} $)。

输出格式:
对于每个测试用例,输出使等式成立的最小的可能的 $ m $ 的值。
如果对于任何 $ m $ 等式都不成立,则打印 $ -1 $。
可以证明,如果所需的 $ m $ 存在,它不会超过 $ 5 \cdot 10^{18} $。题目大意: 给定两个数 $ n $ 和 $ x $,要判断是否存在一个数 $ m $,使得 $ n \& (n+1) \& \ldots \& m = x $。如果存在,求出最小的 $ m $;如果不存在,输出 $ -1 $。 输入输出数据格式: 输入格式: 每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $($ 1 \le t \le 2000 $)。接下来是每个测试用例的描述。 每个测试用例只有一行,包含两个整数 $ n $ 和 $ x $($ 0 \le n, x \le 10^{18} $)。 输出格式: 对于每个测试用例,输出使等式成立的最小的可能的 $ m $ 的值。 如果对于任何 $ m $ 等式都不成立,则打印 $ -1 $。 可以证明,如果所需的 $ m $ 存在,它不会超过 $ 5 \cdot 10^{18} $。

加入题单

上一题 下一题 算法标签: