P17621 [qaswed12 OI R1] Xor is Mex
题目背景
这是第一关。
题目描述
定义 $\operatorname{mex}\{S\}$ 为集合 $S$ 中未出现的最小非负整数;对于一个长度为 $n$ 的序列 $A$,$\operatorname{mex}(A_1, A_2, \dots, A_n)$ 等价于对序列中所有元素构成的集合求 $\operatorname{mex}$。
$\bigoplus$ 符号与 $\sum$ 符号的定义类似,求和变为求异或和,以及 $\oplus$ 符号表示两数按位异或。
---
qaswed12 给定了一个整数 $t$,你需要构造一个长度为 $t$ 的非负整数序列 $a$,使得:
- 对于任意 $1 \le i \le t$,有 $0 \le a_i \le t$。
- $\bigoplus\limits_{i=1}^t a_i = \operatorname{mex}(a_1, a_2, \dots, a_t)$。
若不存在满足条件的序列,输出 `-1`。
但是这个问题太简单了。
所以 qaswed12 对题目进行了改造,你需要构造一个非负整数序列 $A$,使得:
- $1 \le |A| < 10^6$,且对于任意 $1 \le i \le |A|$,有 $0 \le A_i < 10^6$。
- $\bigoplus\limits_{i=1}^{|A|} A_i = \operatorname{mex}(A_1, A_2, \dots, A_{|A|}) = t$。
其中 $|A|$ 表示序列 $A$ 的长度。
若不存在满足条件的序列,输出 `-1`。
**注意:两问中的 $\mathbf t$ 是相同的。**
qaswed12 想让你分别回答上述**两个问题**的答案。
输入格式
一行,一个正整数 $t$。
输出格式
输出共两行:
- 第一行,包含 $t$ 个整数,表示第一个问题构造的序列 $A$。
若无解,输出 `-1`。
- 第二行,输出一个整数 $m$ ,表示序列长度,
再输出 $m$ 个数表示你构造的序列。若无解,输出 `-1`。
说明/提示
### 样例解释
对于第一问,满足 $0 \oplus 1 \oplus 2=\operatorname{mex}\{0,1,2\}$。
对于第二问,样例构造的序列长度为 $m=3$,且满足 $0 \oplus 1 \oplus 2 = \operatorname{mex}\{0,1,2\}=t$。
### 数据范围
本题所有测试点等分。
**保证测试点编号的奇偶性与 $t$ 的奇偶性相同。**
|测试点编号|$t \le $|特殊性质|
|:-:|:-:|:-:|
|$1 \sim 2$|$6$|无|
|$3 \sim 6$|$10^3$|^|
|$7 \sim 12$|$10^5$|^|
|$13 \sim 14$|$10^6$|$\text A$|
|$15 \sim 20$|$10^6$|无|
特殊性质 $\text A$:$t=2^a$ 或 $t=2^a-1$,$a$ 为正整数。
对于 $100\%$ 的数据,满足 $1 \le t \le 10^6$。
**注意:请保证你的输出格式正确,否则可能会获得意料之外的评测结果。**
### 评分标准
- 若你两问的答案均正确,你将获得该测试点的全部分数。
- 若你只有第一问的答案正确,你将获得 $40\%$ 的分数。
- 若你只有第二问的答案正确,你将获得 $60\%$ 的分数。
- 若你两问的答案全部错误,该测试点 $0$ 分。