给我们三个非负整数b,c,d(0≤b,c,d≤1018),请问使得等式(a|b)−(a&c)=d成立的最小非负整数a(0<=a<=261)是多少? 其中,‘|’是位或运算符,‘&’是位与运算符。
如果使等式成立的整数a存在,则输出该值,如果找不到满足等式的a,则输出-1。
给我们三个非负整数b,c,d(0≤b,c,d≤1018),请问使得等式(a|b)−(a&c)=d成立的最小非负整数a(0<=a<=261)是多少? 其中,‘|’是位或运算符,‘&’是位与运算符。
如果使等式成立的整数a存在,则输出该值,如果找不到满足等式的a,则输出-1。
第一行一个整数t(1 ≤ t≤1e4):测试样例数;
接下来共t行,每个测试样例一行三个整数b,c和d(0≤b,c,d≤1018).
测试数据确保所有测试样例的n之和不超过2e6.
输出共t行,每个测试用例一行一个整数:使得等式成立的最小非负整数a。如果找不到满足要求的整数a,则输出:-1. 请注意,a为不大于261的非负整数。
3 2 2 2 4 2 6 10 2 14
0 -1 4
对于样例1,(0|2)−(0&2)=2−0=2,因此a=0即为答案。
对于样例2,没有合适的非负整数使得等式成立,因此输出:-1;
对于样例3,(12|10)−(12&2)=14−0=14,因此a=12即为答案。