Ehab the Xorcist
题意翻译
给定整数 $u$ 和 $v(0\le u,v \le 10^{18})$,试构造长度最短的数组,使得数组内所有元素的异或和为 $u$,加和为 $v$。
如果有解,输出两行,第一行输出一个整数 $n$,第二行输出 $n$ 个非负整数,表示数组里的元素。多解输出任意一组即可。如果无解,输出一行一个整数 $-1$。
题目描述
Given 2 integers $ u $ and $ v $ , find the shortest array such that [bitwise-xor](https://en.wikipedia.org/wiki/Bitwise_operation#XOR) of its elements is $ u $ , and the sum of its elements is $ v $ .
输入输出格式
输入格式
The only line contains 2 integers $ u $ and $ v $ $ (0 \le u,v \le 10^{18}) $ .
输出格式
If there's no array that satisfies the condition, print "-1". Otherwise:
The first line should contain one integer, $ n $ , representing the length of the desired array. The next line should contain $ n $ positive integers, the array itself. If there are multiple possible answers, print any.
输入输出样例
输入样例 #1
2 4
输出样例 #1
2
3 1
输入样例 #2
1 3
输出样例 #2
3
1 1 1
输入样例 #3
8 5
输出样例 #3
-1
输入样例 #4
0 0
输出样例 #4
0
说明
In the first sample, $ 3\oplus 1 = 2 $ and $ 3 + 1 = 4 $ . There is no valid array of smaller length.
Notice that in the fourth sample the array is empty.