Tk的排列间异或
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}Tk 有一个长度为 n (保证 n 为偶数)的排列 \{a_1,a_2,\dots,a_n\}。Tk 希望你构造一个长度为 n 的排列 \{b_1,b_2,\dots,b_n\} 使得 \sum_{i=1}^{n}(a_i\operatorname{xor}b_i) 的值最大,请输出你构造的排列。
\hspace{15pt}长度为 n 的排列是由 1 \sim nn 个整数按任意顺序组成的数组,其中每个整数恰好出现一次。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数.

输入描述:

\hspace{15pt}第一行输入一个正整数 n(1 \leqq n \leqq 2\times10^5) 表示排列长度。保证 n 为偶数。

\hspace{15pt}第二行输入 n 个整数 a_i(1\leqq a_i\leqq n) 表示排列 a.

输出描述:

\hspace{15pt}输出一行 n 个整数,表示你构造的排列 b.如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
2
1 2

输出

复制
2 1