#D0629. [DAY06]和是两倍异或和

[DAY06]和是两倍异或和

题目描述

给你一个数 nn,请构造一个长度为 nn 的数组 a1ana_1\sim a_n,使得满足下面的条件:

  • 所有数都在 11091\sim 10^9 范围内。
  • SS 为所有数之和,则 SS 是个偶数。即 a1+a2++an=Sa_1+a_2+\dots +a_n=S 是个偶数。
  • 所有数的异或和等于 S2\frac{S}{2}。即 a1a2an=S2a_1 \oplus a_2 \oplus\dots \oplus a_n=\frac{S}{2}

显然可能有多种情况,输出任意一种即可。

输入格式

一个数 nn

输出格式

一行 nn 个数,为你构造的方案。

3
2 4 2 
  • 2+4+2=82+4+2=8
  • (10)2(100)2(10)2=4(10)_2\oplus (100)_2\oplus (10)_2 = 4

数据规模与约定

对于 100%100\% 的数据,3n50003 \le n \le 5000

  • 子任务 1(30 分):保证 nn 是奇数。
  • 子任务 2(30 分):保证 n10n\le 10
  • 子任务 3(40 分):没有特殊限制。