#TLD0055. 异或

异或

题目描述

给定非负整数 x,y,hx, y, h,保证 0x,y<2h0 \le x, y < 2^h,你需要找到一个整数 zz 使得 0z<2h0\le z<2^h(xz)×(yz)(x\oplus z)\times(y\oplus z) 最大,求这个最大值。

其中 \oplus 表示按位异或运算。

输入格式

本题输入包含多组数据。

第一行,一个整数 TT,表示数据组数。对于每组数据:

  • 仅一行,三个整数 x,y,hx, y, h

输出格式

对于每组数据,输出一行一个数,表示答案。

输入输出样例 #1

输入 #1

5
0 0 2
1 0 1
0 3 2
1 0 2
3 3 3

输出 #1

9
0
2
6
49

输入输出样例 #2

输入 #2

3
213467858 78934 30
789432278 948729048 30
114514 1919810 22

输出 #2

934398046840059525
763270444894761743
10523686794257

说明/提示

【样例解释 #1】

每一组数据分别可能选取的 zz3,0,1,2,43,0,1,2,4

【数据范围】

对于所有数据,保证 1T1061\le T\le 10^60x,y<2h0\le x,y<2^h1h301\le h\le 30

各测试点特殊限制如下:

测试点编号 TT\le hh\le
1,21,2 50005000 1212
353\sim 5 10610^6 3030