问题描述
有一个正整数 x,你需要找到一个不大于 k 的正整数 y,使得 x 与 y 的按位异或值( x ⊕ y )最大。请输出满足条件的 y。
注:按位异或(⊕)的定义是:对两个数的每一位,相同为 0,不同为 1。
输入格式
第一行输入一个正整数 t,代表询问的次数。
接下来的 t 行,每行输入两个正整数 x 和 k,代表一次询问。
输出格式
输出 t 行,每行输出一个正整数,代表找出的 y 的值。
样例输入
3
3 2
5 4
10 18
样例输出
1
2
17
说明
- x=3,k=2:y=1 时,3⊕1=2(最大)。
- x=5,k=4:y=2 时,5⊕2=7(最大)。
- x=10,k=18:y=17 时,10⊕17=27(最大)。
数据范围
对于所有测试数据,保证:
对于 30% 的数据,1≤t,k≤1000 。
对于 100% 的数据,1≤t≤105,1≤x,k≤109 。