CF2020C Bitwise Balancing
题目描述
# 位运算平衡
给定三个非负整数 $ b $ 、$ c $ 和 $ d $ 。
请找到一个非负整数 $ a \in [0, 2^{61}] $ 使得 $ (a\, |\, b)-(a\, \&\, c)=d $ ,其中 $ | $ 和 $ \& $ 分别表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)和[按位与运算](https://en.wikipedia.org/wiki/Bitwise_operation#AND)。
如果存在这样的 $ a $ ,请输出它的值。如果没有解,请输出整数 $ -1 $ 。如果存在多个解,输出其中任意一个。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $ ( $ 1 \le t \le 10^5 $ )。每个测试用例的描述如下。
每个测试用例的唯一一行包含三个正整数 $ b $ 、$ c $ 和 $ d $ ( $ 0 \le b, c, d \le 10^{18} $ )。
输出格式
对于每个测试用例,输出 $ a $ 的值,或者如果没有解则输出 $ -1 $ 。请注意,$ a $ 必须是非负数,并且不能超过 $ 2^{61} $ 。
说明/提示
在第一个测试用例中,$ (0\,|\,2)-(0\,\&\,2)=2-0=2 $ 。因此,$ a = 0 $ 是一个正确答案。
在第二个测试用例中,没有任何值 $ a $ 满足方程。
在第三个测试用例中,$ (12\,|\,10)-(12\,\&\,2)=14-0=14 $ 。因此,$ a = 12 $ 是一个正确答案。