300402: CF76D. Plus and xor
Memory Limit:256 MB
Time Limit:0 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Plus and xor
题意翻译
给出两整数 $A,B$,要求找到 $X,Y$ 满足以下两个条件: - $A=X+Y$; - $B=X \oplus Y$,其中 $\oplus$ 表示异或运算。 且要求 $X$ 是所有满足前两个条件中最小的。 如果无解,输出 $-1$;否则,输出 $X,Y$。题目描述
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.输入输出格式
输入格式
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