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

Задача . D. Ехаб, XORминатор


Для данных 2 чисел \(u\) и \(v\), найдите самые короткий массив такой, что побитовое исключающее ИЛИ его элементов равно \(u\), а сумма его элементов равна \(v\).

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

Единственная строка содержит 2 целых числа \(u\) и \(v\) \((0 \le u,v \le 10^{18})\).

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

Если нет массива, удовлетворяющего условию, выведите "-1 ". В противном случае:

Первая строка должна содержать одно целое число, \(n\), равное длине нужного массива. Следующая строка должна содержать \(n\) положительных целых чисел, сам массив. Если есть несколько возможных ответов, выведите любой.

Примечание

В первом примере, \(3\oplus 1 = 2\) and \(3 + 1 = 4\). Заметьте, что подходящего массива меньшей длины не существует.

Обратите внимание, что в четвертом примере массив пуст.


Примеры
Входные данныеВыходные данные
1 2 4
2
3 1
2 1 3
3
1 1 1
3 8 5
-1
4 0 0
0

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

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