#ATarc124b. [ARC124B] XOR Matching 2

[ARC124B] XOR Matching 2

题目描述

给定两个只包含非负整数的长度为 NN 的数列 aabbaabb 的第 ii 个元素分别为 aia_ibib_i

如果存在非负整数 xx 满足以下条件,则称 xx好数

  • 条件:可以重新排列 bb,使得对于所有满足 1iN1 \leq i \leq N 的整数 ii,都有 ai XOR bi=xa_i\ \text{XOR}\ b_i = x。这里的 XOR\text{XOR} 表示按位异或运算。

请按从小到大的顺序列举所有好数。

XOR\text{XOR} 的定义如下:对于整数 x,yx, y,它们的按位异或 x XOR yx\ \text{XOR}\ y,在二进制下的每一位 2k2^kk0k \geq 0)上,如果 xxyy 在该位上只有一个为 11,则结果为 11,否则为 00

例如,3 XOR 5=63\ \text{XOR}\ 5 = 6(二进制表示为:011 XOR 101=110011\ \text{XOR}\ 101 = 110)。

输入格式

输入以如下格式从标准输入读入:

NN a1a_1 \cdots aNa_N b1b_1 \cdots bNb_N

输出格式

第一行输出好数的个数 KK。接下来输出 KK 行,每行一个好数,按从小到大的顺序输出。

样例 1

输入

3
1 2 3
6 4 7

输出

1
5

样例 2

输入

2
0 1
0 2

输出

0

样例 3

输入

24
14911005 70152939 282809711 965900047 168465665 337027481 520073861 20800623 934711525 944543101 522277111 580736275 468493313 912814743 99651737 439502451 365446123 198473587 285587229 253330309 591640417 761745547 247947767 750367481
805343020 412569406 424258892 329301584 123050452 1042573510 1073384116 495212986 158432830 145726540 623594202 836660574 380872916 722447664 230460104 718360386 620079272 109804454 60321058 38178640 475708360 207775930 393038502 310271010

输出

8
107543995
129376201
139205201
160626723
312334911
323172429
481902037
493346727

说明/提示

限制

  • 所有输入均为整数。
  • 1N20001 \leq N \leq 2000
  • 0ai,bi<2300 \leq a_i, b_i < 2^{30}

样例解释 1

  • bb 被重新排列为 (4,7,6)(4, 7, 6) 时,有 $a\_1\ \text{XOR}\ b\_1 = a\_2\ \text{XOR}\ b\_2 = a\_3\ \text{XOR}\ b\_3 = 5$,因此 55 是好数。没有其他好数。

由 ChatGPT 4.1 翻译