Codeforces Round 931 (Div. 2)
D1
XOR Break — Solo Version
Codeforces
2100
原题
← CD2 →
翻译中…

This is the solo version of the problem. Note that the solution of this problem may or may not share ideas with the solution of the game version. You can solve and get points for both versions independently.

翻译中…

You can make hacks only if both versions of the problem are solved.

翻译中…

Given an integer variable $x$ with the initial value of $n$. A single break operation consists of the following steps:

翻译中…
  • Choose a value $y$ such that $0 \lt y \lt x$ and $0 \lt (x \oplus y) \lt x$.
  • Update $x$ by either setting $x = y$ or setting $x = x \oplus y$.
翻译中…

Determine whether it is possible to transform $x$ into $m$ using a maximum of $63$ break operations. If it is, provide the sequence of operations required to achieve $x = m$.

翻译中…

You don't need to minimize the number of operations.

翻译中…

Here $\oplus$ denotes the bitwise XOR operation.

翻译中…

Input

翻译中…

The first line contains one positive integer $t$ ($1 \le t \le 10^4$) — the number of test cases.

翻译中…

Each test case consists of a single line containing two integers $n$ and $m$ ($1 \leq m \lt n \leq 10^{18}$) — the initial value of $x$ and the target value of $x$.

翻译中…

Output

翻译中…

For each test case, output your answer in the following format.

翻译中…

If it is not possible to achieve $m$ in $63$ operations, print $-1$.

翻译中…

Otherwise,

翻译中…

The first line should contain $k$ ($1 \leq k \leq 63$) — where $k$ is the number of operations required.

翻译中…

The next line should contain $k+1$ integers — the sequence where variable $x$ changes after each break operation. The $1$-st and $k+1$-th integers should be $n$ and $m$, respectively.

翻译中…

Note

翻译中…

In the first test case $n = 7$, for the first operation $x = 7$ if we choose $y = 3$ then $(7 \oplus 3) \lt 7$, hence we can update $x$ with $3$ which is equal to $m$.

翻译中…

In the second test case $n = 4$, for the first operation $x = 4$.

翻译中…

If we choose:

翻译中…
  • $y = 1$ then $(4 \oplus 1) \gt 4$
  • $y = 2$ then $(4 \oplus 2) \gt 4$
  • $y = 3$ then $(4 \oplus 3) \gt 4$
翻译中…

Hence we can't do the first operation and it is impossible to make $x = 2$.

翻译中…

样例

Input #1
3
7 3
4 2
481885160128643072 45035996273704960
Output #1
1
7 3
-1
3
481885160128643072 337769972052787200 49539595901075456 45035996273704960
InputCopy OutputCopy
题目信息
题号
1934D1
时间限制
2 s
内存限制
256 MB
标签
位运算
构造
贪心

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。