#502. 最大异或值

最大异或值

问题描述

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

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

输入格式

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

输出格式

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

样例输入

3
3 2
5 4
10 18

样例输出

1
2
17

说明

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

数据范围

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

对于 30%30\% 的数据,1t,k10001\le t,k \le 1000

对于 100%100\% 的数据,1t1051\le t \le 10^51x,k1091\le x,k\le 10^9