平衡排列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}Bingbong 称一个长度为 n排列 p 为「平衡排列」,当且仅当存在一个索引 \mathrm{mid}\ (1\leqq \mathrm{mid}<n),满足:

\displaystyle \sum\limits_{i=1}^{\mathrm{mid}} p_i \;=\;\sum\limits_{i=\mathrm{mid}+1}^{n} p_i

\hspace{15pt}现在给定整数 n,请你构造一个长度为 n 的「平衡排列」 p_1,p_2,\dots,p_n。若存在多解,输出任意一种;若无解,输出 \texttt{-1}

【名词解释】
\hspace{15pt}长度为 n 的排列:由 1,2,\dots,nn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^3\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}输入一个整数 n\left(1\leqq n\leqq 10^5\right),表示排列长度。

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

输出描述:

\hspace{15pt}对于每组测试数据,新起一行。如果存在「平衡排列」,输出一个长度为 n 的排列 p_1,p_2,\dots,p_n;否则直接输出 \texttt{-1}

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

输入

复制
3
2
3
3

输出

复制
-1
1 2 3
3 2 1

说明

\hspace{15pt}对于第二组测试数据,可以分成 \{1,2\}\{3\} 两组,这样满足两组的总和相等。当然输出 \{3,2,1\} 也是满足的。