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

Input

题意翻译

给出两整数 $A,B$,要求找到 $X,Y$ 满足以下两个条件: - $A=X+Y$; - $B=X \oplus Y$,其中 $\oplus$ 表示异或运算。 且要求 $X$ 是所有满足前两个条件中最小的。 如果无解,输出 $-1$;否则,输出 $X,Y$。

加入题单

算法标签: