题目描述
这是一款解密游戏。
有两个非负整数 A,B,玩家并不知道这两个数是什么。
玩家知道的是两个非负整数 X,Y,其中 X=A or B,Y=A and B(下文将给出这两个运算的准确定义)。
这款游戏要你求出 A+B 的值是多少,或者报告无解。
or 与 and 的定义:
考虑两个二进制数 p,q,对于 p or q 的每一位,如果二者都为 0 则这一位的值为 0,否则为 1。对于 p and q,则是将 0,1 的地位对调。而十进制下的这两个运算,就是先转化成二进制进行运算,再将最终的结果转化为十进制。
比方说,考虑 6 or 3 与 6 and 3,其中 6=(110)2,3=(11)2。
有 6 or 3=(111)2=7,6 and 3=(10)2=2。
输入格式
本题有多组测试数据
第一行一个正整数 T,表示测试数据组数。
对于每组测试数据,输入一行两个非负整数 X,Y。
输出格式
对于每组测试数据,输出一行一个整数表示 A+B 的值,如果无解则输出 −1。
样例输入 1
2
7 2
2 1
样例输出 1
9
-1
数据规模与提示
-
对于 40% 的测试数据,X,Y≤1000。
-
对于 80% 的测试数据,T≤100,X,Y≤105。
-
对于 100% 的测试数据,T≤105,X,Y≤109。