Олимпиадный тренинг

Задача . D. Плюс и XOR


Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) — это бинарная операция, действие которой эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичной записи операндов. Иными словами, если соответствующие биты операндов различны, то соответствующий двоичный разряд результата равен 1; если же биты одинаковые, то двоичный разряд результата равен 0.

Например, если X = 10910 = 11011012, а Y = 4110 = 1010012 тогда:

X xor Y  =  6810  =  10001002.

Напишите программу, которая по двум целым неотрицательным числам A и B найдет такие неотрицательные целые числа X и Y, для которых выполняются условия:

  • A  =  X + Y
  • B  =  X xor Y, где xor — побитовое исключающее или.
  • X — наименьшее среди чисел, для которых выполняются условия 1 и 2.
Входные данные

Первые две строки входного файла содержат соответственно целые числа A и B (0 ≤ A, B ≤ 264 - 1).

Выходные данные

Единственная строка выходного файла должна содержать два целых неотрицательных числа X и Y, либо единственное число  - 1, если таких пар не существует.


Примеры
Входные данныеВыходные данные
1 142
76
33 109

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя