测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2891. 二进制

编程题 提高+/省选-

题目描述

有三个整数 $A,B,C$,以下用 $N_{(2)}$ 表示 $N$ 的二进制(没有前导 $0$)。

设 $A_{(2)},B_{(2)},C_{(2)}$ 的最大长度为 $L$,你需要构造三个正整数 $X,Y,Z$,满足以下条件:

1. $X_{(2)},Y_{(2)},Z_{(2)}$ 的长度都不超过 $L$。
2. $A_{(2)}$ 与 $X_{(2)}$ 中 $1$ 的个数相同。
3. $B_{(2)}$ 与 $Y_{(2)}$ 中 $1$ 的个数相同。
4. $C_{(2)}$ 与 $Z_{(2)}$ 中 $1$ 的个数相同。
5. $X+Y=Z$。

输入格式

第一行包含一个正整数 $T$,表示有 $T$ 组测试数据。

接下来 $T$ 行,每行三个正整数 $A,B,C$。

输出格式

输出共 $T$ 行,每行一个答案。

输出最小的 $Z$。如果没有合法的 $Z$ 则输出 $-1$。

输入输出样例

输入 #1
4
7 6 9
1 1 1
1 1 4
3 3 9
输出 #1
10
-1
2
6

说明/提示

### 数据范围及约定

- 对于 $30\%$ 的数据,满足 $1 \le A,B,C \le 100$;
- 对于 $100\%$ 的数据,满足 $1 \le T \le 10$,$1 \le A,B,C \le 2^{30}$。
上一题 去做题 下一题