CF1270C Make Good
题目描述
我们称一个由非负整数组成的数组 $a_1, a_2, \dots, a_m$ 是“好”的,如果满足 $a_1 + a_2 + \dots + a_m = 2\cdot(a_1 \oplus a_2 \oplus \dots \oplus a_m)$,其中 $\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。
例如,数组 $[1, 2, 3, 6]$ 是“好”的,因为 $1 + 2 + 3 + 6 = 12 = 2\cdot 6 = 2\cdot (1\oplus 2 \oplus 3 \oplus 6)$。而数组 $[1, 2, 1, 3]$ 不是“好”的,因为 $1 + 2 + 1 + 3 = 7 \neq 2\cdot 1 = 2\cdot(1\oplus 2 \oplus 1 \oplus 3)$。
现在给你一个长度为 $n$ 的数组 $a_1, a_2, \dots, a_n$。你可以在数组末尾添加最多 $3$ 个元素,使其变为“好”的数组。添加的元素可以相同。已知在给定的约束下,解一定存在。如果有多种方案,你可以输出任意一种。注意,你不需要最小化添加元素的数量!因此,如果原数组已经是“好”的,你可以选择不添加元素。
输入格式
无
输出格式
无
说明/提示
在样例的第一个测试用例中,所有数的和为 $12$,它们的 $\oplus$ 为 $6$,因此条件已经满足。
在样例的第二个测试用例中,添加 $4, 4$ 后,数组变为 $[8, 4, 4]$。此时所有数的和为 $16$,它们的 $\oplus$ 为 $8$。
由 ChatGPT 4.1 翻译