#J40001. 最大异或值

最大异或值

问题描述

有一个正整数 xx,你需要找到一个不大于 kk 的正整数 yy,使得 xx 与 yy 的按位异或值( xx ⊕\oplus yy )最大。请输出满足条件的 yy。

注:按位异或(⊕\oplus)的定义是:对两个数的每一位,相同为 00,不同为 11。

输入格式

第一行输入一个正整数 tt,代表询问的次数。 接下来的 tt 行,每行输入两个正整数 xx 和 kk,代表一次询问。

输出格式

输出 tt 行,每行输出一个正整数,代表找出的 yy 的值。

样例输入

3
3 2
5 4
10 18

样例输出

1
2
17

说明

  1. x=3,k=2x=3, k=2:y=1y=1 时,3⊕1=23 \oplus 1 = 2(最大)。
  2. x=5,k=4x=5, k=4:y=2y=2 时,5⊕2=75 \oplus 2 = 7(最大)。
  3. x=10,k=18x=10, k=18:y=17y=17 时,10⊕17=2710 \oplus 17 = 27(最大)。

数据范围

对于所有测试数据,保证:

对于 30%30\% 的数据,1≤t,k≤10001\le t,k \le 1000 。

对于 100%100\% 的数据,1≤t≤1051\le t \le 10^5,1≤x,k≤1091\le x,k\le 10^9 。