#CF2020C. 按位平衡

    ID: 6335 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 2 上传者: 标签>线性代数位运算其他三分查找数学模拟数据结构Hashing*1400

按位平衡

C. 按位平衡

时间限制:每个测试用例 2 秒 内存限制:256 兆字节

给定三个非负整数 bbccdd

请找出一个非负整数 a[0,261]a \in [0, 2^{61}],使得等式:

(ab)(a&c)=d(a \mid b) - (a \mathbin{\&} c) = d

成立,其中 \mid 表示按位或运算&\mathbin{\&} 表示按位与运算

如果存在这样的 aa,输出它的值;如果不存在解,输出 1-1;如果存在多个解,输出任意一个即可。

输入格式

每个测试文件包含多组测试用例。 第一行输入测试用例数量 tt1t1051 \le t \le 10^5)。 每组测试用例仅一行,包含三个非负整数 bbccdd0b,c,d10180 \le b,c,d \le 10^{18})。

输出格式

对于每组测试用例,输出满足条件的 aa 的值;若无解则输出 1-1。 注意:aa 必须是非负整数,且不能超过 2612^{61}

样例输入

3
2 2 2
4 2 6
10 2 14

样例输出

0
-1
12

样例说明

  • 第一组测试用例:(02)(0&2)=20=2(0 \mid 2) - (0 \mathbin{\&} 2) = 2 - 0 = 2,因此 a=0a=0 是正确答案。
  • 第二组测试用例:不存在满足等式的 aa
  • 第三组测试用例:(1210)(12&2)=140=14(12 \mid 10) - (12 \mathbin{\&} 2) = 14 - 0 = 14,因此 a=12a=12 是正确答案。