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

题目描述

\hspace{15pt}Rainbow 定义了一个大小为 k \left(k \geq 2\right) 的波形数组是由整数 1 到 k 依次递增排序与整数 k - 1 到 1 依次递减排序的拼接。例如大小为 2 的波形数组为 [1, 2, 1],大小为 5 的波形数组为[1, 2, 3, 4, 5, 4, 3, 2, 1]
\hspace{15pt}需要注意的是,不存在大小为 1 的波形数组
\hspace{15pt}请你帮助 Flower 判断,长度为 n 的且由若干个波形数组依次拼接而成的数组是否存在。如果存在,输出任意一个。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 10^4\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入一个整数 n\left(1\leq n\leq 2\times 10^5\right),表示数组 a 的长度。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。若不存在合法的数组,直接输出 -1;否则,输出 n 个整数,用空格隔开,表示构造的数组 a

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

输入

复制
4
1
3
9
18

输出

复制
-1
1 2 1
1 2 3 4 5 4 3 2 1
1 2 1 1 2 3 2 1 1 2 1 1 2 3 4 3 2 1

说明

\hspace{15pt}对于第一组样例,可以证明,不存在任何一种构造方案,得到长度为 1 的数组 a

\hspace{15pt}对于第二组样例,长度为 3 的数组 a,由 1 个波形数组构成,这个波形数组大小为 2,即 [1, 2, 1]

\hspace{15pt}对于第四组样例,长度为 18 的数组 a,其中一种可行的构造方案是,使用 4 个波形数组,这 4 个波形数组大小依次为 2, 3, 2, 4,分别是 [1, 2, 1], [1, 2, 3, 2, 1], [1, 2, 1], [1, 2, 3, 4, 3, 2, 1]