Плюс и XOR
Плюс и XOR
Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) – это бинарная операция, действие которой эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичной записи операндов. Иными словами, если соответствующие биты операндов различны, то соответствующий двоичный разряд результата равен 1; если же биты совпадают, то двоичный разряд результата равен 0.
Например, если X = 101 = 01100101_2,
Y = 41 = 00101001_2,
то X xor Y = 76 = 01001100_2.
В языке программирования Pascal побитовое исключающее или обозначается "xor", а в С/С++ – символом "^".
Напишите программу, которая по двум целым неотрицательным числам A и B найдет такие неотрицательные целые числа X и Y, для которых выполняются условия:
A = X + Y
B = X xor Y, где xor – побитовое исключающее или.
X – наименьшее среди чисел, для которых выполняются условия 1 и 2.
Входные данные
Первые две строки содержат соответственно целые числа A и B (0 ≤ A, B ≤ 2^{64 }- 1).
Выходные данные
Вывести в одной строке два целых неотрицательных числа X и Y, либо одно число -1, если таких пар не существует.
Пример
142 76
33 109
1367480970723947 584615739735395
391432615494276 976048355229671