CFCF2162C.Beautiful XOR

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个整数 aabb,你可以进行如下操作任意次数(包括零次):

  • 选择任意整数 xx,满足 0xa0 \le x \le a(其中 aa 为当前值,而非初始值),
  • aa 更新为 $ a \oplus x。这里,。这里,\oplus$ 表示按位异或运算符。

通过一系列操作后,你希望将 aa 的值变为恰好 bb

请找到至多 100100 次操作(即所使用的 xx 值序列),将 aa 变为 bb,或者报告无解。

注意,你不需要找到最少操作次数的方案,只需给出任意一组满足要求且操作不超过 100100 次的方案。

输入格式

输入的第一行为一个整数 tt1t10001 \le t \le 1000),表示测试用例数量。

每组测试数据包含两个整数 aabb1a,b1091 \le a, b \le 10^9)。

输出格式

对于每组测试数据,如果无法通过允许的操作将 aa 变为 bb,则输出一行 1-1

否则,第一行输出一个整数 kk0k1000 \le k \le 100),表示需要的操作次数。第二行输出 kk 个整数 x1,x2,,xkx_1, x_2, \dots, x_k,依次为每次操作选取的 xx

如果存在多种可行序列,你可以输出任意一种。

输入输出样例

  • 输入#1

    6
    9 6
    13 13
    292 929
    405 400
    998 244
    244 353

    输出#1

    2
    7 8
    0
    -1
    1
    5
    2
    25 779
    -1

说明/提示

对于第一个测试用例:

  • 选择 x=7x=7,此时 aa 变为 97=149 \oplus 7 = 14
  • 选择 x=8x=8,此时 aa 变为 148=614 \oplus 8 = 6

因此,我们可以使 a=ba=b。对于第四个测试用例,选择 x=5x=5 可使 a=ba=b

首页