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$ 分。