P415 [P1633] 二进制
提高-
题目描述

题目描述

有三个整数 $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$。

样例输入
4 7 6 9 1 1 1 1 1 4 3 3 9
样例输出
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}$。

本题源自洛谷 P1633