A8122. Plus and xor
编程题
普及/提高-
知识点
题目描述
Bitwise exclusive OR (or bitwise addition modulo two) is a binary operation which is equivalent to applying logical exclusive OR to every pair of bits located on the same positions in binary notation of operands. In other words, a binary digit of the result is equal to 1 if and only if bits on the respective positions in the operands are different.
For example, if $X=109_{10}=1101101_{2}$ , $Y=41_{10}=101001_{2}$ , then:
$X$ xor $Y = 68_{10} = 1000100_{2}$ . Write a program, which takes two non-negative integers $A$ and $B$ as an input and finds two non-negative integers $X$ and $Y$ , which satisfy the following conditions:
- $A=X+Y$
- $B = X$ xor $Y$ , where xor is bitwise exclusive or.
- $X$ is the smallest number among all numbers for which the first two conditions are true.
For example, if $X=109_{10}=1101101_{2}$ , $Y=41_{10}=101001_{2}$ , then:
$X$ xor $Y = 68_{10} = 1000100_{2}$ . Write a program, which takes two non-negative integers $A$ and $B$ as an input and finds two non-negative integers $X$ and $Y$ , which satisfy the following conditions:
- $A=X+Y$
- $B = X$ xor $Y$ , where xor is bitwise exclusive or.
- $X$ is the smallest number among all numbers for which the first two conditions are true.
输入格式
The first line contains integer number $A$ and the second line contains integer number $B$ ( $0<=A,B<=2^{64}-1$ ).
输出格式
The only output line should contain two integer non-negative numbers $X$ and $Y$ . Print the only number -1 if there is no answer.
输入输出样例
输入 #1
142 76
输出 #1
33 109