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

题目描述

\hspace{15pt}牛牛定义一个排列是优美的,当且仅当满足,全部相邻元素的最大公约数之和恰好为一个偶数。严谨地说,满足:

\displaystyle\sum\limits_{i=1}^{n-1}\gcd(p_i,p_{i+1})\equiv 0\pmod 2

\hspace{15pt}请构造一个长度为 n 的排列,使得其是优美的。

【名词解释】
\hspace{15pt}长度为 n排列:由 1,2,\dots,nn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
\hspace{15pt}最大公约数(gcd):指两个或多个整数共有约数中最大的一个。例如,1230 的公约数有 1,2,3,6,其中最大的约数是 6,因此记作 \gcd(12,30)=6

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 100\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}在一行上输入一个整数 n\left(1\leq n\leq 2\times 10^5\right) 表示排列长度。
\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果不存在符合题意的排列,输出 -1;否则,在一行上输出 n 个互不相同的整数,表示满足题意的排列。

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

输入

复制
3
1
2
3

输出

复制
1
-1
1 2 3