#RB0006. 解密游戏

解密游戏

题目描述

这是一款解密游戏。

有两个非负整数 A,BA,B,玩家并不知道这两个数是什么。

玩家知道的是两个非负整数 X,YX,Y,其中 X=A or B,Y=A and BX=A\ \text{or}\ B,Y=A\ \text{and}\ B(下文将给出这两个运算的准确定义)。

这款游戏要你求出 A+BA+B 的值是多少,或者报告无解。

or\text{or}and\text{and} 的定义:

考虑两个二进制数 p,qp,q,对于 p or qp\ \text{or}\ q 的每一位,如果二者都为 00 则这一位的值为 00,否则为 11。对于 p and qp\ \text{and}\ q,则是将 0,10,1 的地位对调。而十进制下的这两个运算,就是先转化成二进制进行运算,再将最终的结果转化为十进制。

比方说,考虑 6 or 36\ \text{or} \ 36 and 36\ \text{and}\ 3,其中 6=(110)2,3=(11)26=(110)_2,3=(11)_2

6 or 3=(111)2=76\ \text{or} \ 3=(111)_2=76 and 3=(10)2=26\ \text{and} \ 3=(10)_2=2

输入格式

本题有多组测试数据

第一行一个正整数 TT,表示测试数据组数。

对于每组测试数据,输入一行两个非负整数 X,YX,Y

输出格式

对于每组测试数据,输出一行一个整数表示 A+BA+B 的值,如果无解则输出 1-1

样例输入 1

2
7 2
2 1

样例输出 1

9
-1

数据规模与提示

  • 对于 40%40\% 的测试数据,X,Y1000X,Y\le 1000

  • 对于 80%80\% 的测试数据,T100,X,Y105T\le 100,X,Y\le 10^5

  • 对于 100%100\% 的测试数据,T105,X,Y109T\le 10^5,X,Y\le 10^9