eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Плюс та XOR

Плюс та XOR

Побітове виключне \textbf{АБО} (або побітове додавання за модулем два) -- це бінарна операція, дія якої еквівалентна застосуванню логічного виключного \textbf{АБО} до кожної пари бітів, які стоять на однакових позиціях у двійковому записі операндів. Іншими словами, якщо відповідні біти операндів різні, то відповідний двійковий розряд результату дорівнює 1; якщо ж біти збігаються, то двійковий розряд результату дорівнює \textbf{0}. Наприклад, якщо \textbf{X = 101 = 01100101_2}, \textbf{Y = 41 = 00101001_2}, то \textbf{X xor Y = 76 = 01001100_2}. В мові програмування Pascal побітове виключне або позначається "\textbf{xor}", а в С/С++ -- символом "\textbf{^}". Напишіть програму, яка за двома цілими невід’ємними числами \textbf{A} та \textbf{B} знайде такі невід'ємні цілі числа \textbf{X} і \textbf{Y}, для яких виконуються умови: \begin{enumerate} \item \textbf{A = X + Y} \item \textbf{B = X xor Y}, де \textbf{xor} -- побітове виключне або. \item \textbf{X} -- найменше серед чисел, для яких виконуються умови \textbf{1} і \textbf{2}. \end{enumerate} \InputFile Перші два рядки містять відповідно цілі числа \textbf{A }та \textbf{B }(\textbf{0 }≤ \textbf{A}, \textbf{B }≤ \textbf{2^64 - 1}). \OutputFile Вивести в одному рядку два цілих невід'ємних числа \textbf{X }та \textbf{Y}, або єдине число \textbf{-1}, якщо таких пар не існує.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
142
76
Вихідні дані #1
33 109
Вхідні дані #10
1367480970723947
584615739735395
Вихідні дані #10
391432615494276 976048355229671
Автор Даниїл Нейтер
Джерело 2011 XXIV Всеукраїнська олімпіада з інформатики, Черкаси, Березень 26 - 31, тур 1