P4574 [CQOI2013] 二进制A+B
题目描述
输入三个整数 $a, b, c$,把它们写成无前导 $0$ 的二进制整数。
比如 $a=7, b=6, c=9$,写成二进制为 $a=(111)_2, b=(110)_2, c=(1001)_2$。
接下来以位数最多的为基准,其他整数在前面添加前导 $0$,使得 $a, b, c$ 拥有相同的位数。比如在刚才的例子中,添加完前导 $0$ 后为 $a=(0111)_2, b=(0110)_2, c=(1001)_2$。
最后,把 $a, b, c$ 的各位进行重排,得到 $a', b', c'$,使得 $a'+b'=c'$。比如在刚才的例子中,可以这样重排:$a'=(0111)_2, b'=(0011)_2, c'=(1010)_2$。
你的任务是让 $c'$ 最小。如果无解,输出 $-1$。
输入格式
输入仅一行,包含三个整数 $a, b, c$。
输出格式
输出仅一行,为 $c'$ 的最小值。
说明/提示
对于所有的测试数据,$a,b,c \le 2^{30}$。