Задача №111763. Плюс и XOR
Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) — это бинарная операция, действие которой эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичной записи операндов. Иными словами, если соответствующие биты операндов различны, то соответствующий двоичный разряд результата равен
1
; если же биты совпадают, то двоичный разряд результата равен
0
. Например, если
X
= 101 = 01100101
2
,
Y
= 41 = 00101001
2
, то
XxorY
= 76 = 01001100
2
. В языке программирования Pascal побитовое исключающее или обозначается “xor”, а в
C
/
C
+ +
— символом
. Напишите программу, которая по двум целым неотрицательным числам
A
и
B
найдет такие неотрицательные целые числа
X
и
Y
, для которых выполняются условия:
- A = X + Y
- B = XxorY , где xor — побитовое исключающее или.
- X – наименьшее среди чисел, для которых выполняются условия 1 и 2.
Первые две строки входного файла содержат соответственно целые числа A и B ( 0 ≤ A , B ≤ 2 64 - 1 ).
Единственная строка выходного файла должна содержать два целых неотрицательных числа X и Y , либо одно число - 1 , если таких пар не существует.
142 76
33 109