编程题
### 问题描述 小蓝是一个喜欢数学的高中生,他最近在研究一种排列的构造方法。这种排列由 $n$ 个不同的数构成,且这些数满足从 $1$ 到 $n$ 的每个数都恰好出现一次。为了构造这种排列,小蓝设计了一个规则:对于一个长度为 $n$ 的排列 $p$,可以构造出一个长度为 $\frac{n}{2}$ 的数组 $b$,其中对于 $1\leq i\leq \frac{n}{2}$,$b_i=\max(p_{2i-1},p_{2i})$。 小蓝想知道,对于给定的数组 $b$,是否存在一个字典序最小的排列 $p$,使得 $b$ 恰好可以由 $p$ 构造得到。如果存在,他希望你帮助他找到这个排列 $p$。 字典序比较规则:给定两个排列 $p$ 和 $q$,定义 $p$ 的字典序小于 $q$ 的字典序,当且仅当存在一个位置 $i$,满足 $p_j = q_j$,对于 $j \in [1, i-1]$,且 $p_i < q_i$。 请帮助小蓝解决这个问题吧! ### 输入格式 输入的第一行包含一个整数 $t$,表示测试数据组数。 每组测试数据的第一行包含一个偶数 $n$,表示排列的长度。 每组测试数据的第二行包含 $\frac{n}{2}$ 个整数 $b_1,b_2,\dots,b_{\frac{n}{2}}$,表示数组 $b$ 中的元素。 ### 输出格式 对于每组测试数据,输出一个排列 $p$,使得 $b$ 可以从 $p$ 中构造得到,并且字典序最小。 如果所求的排列不存在,则输出一个数字 $\texttt{-1}$。 ### 样例输入 ```txt 6 6 4 3 6 4 2 4 8 8 7 2 3 6 6 4 2 4 4 4 8 8 7 4 5 ``` ### 样例输出 ```txt 1 4 2 3 5 6 1 2 3 4 -1 5 6 3 4 1 2 -1 1 8 6 7 2 4 3 5 ``` ### 样例说明 对于第一个样例,如果 $b$ = [$4,3,6$],则可以从排列 $p$ = [$1,4,2,3,5,6$] 中构造得到 $b$,因为: - $b_1 = \max(p_1, p_2) = \max(1, 4) = 4$ - $b_2 = \max(p_3, p_4) = \max(2, 3) = 3$ - $b_3 = \max(p_5, p_6) = \max(5, 6) = 6$ ### 评测数据规模 对于 $100$% 的评测数据,$1\leq t\leq 5,2\leq n\leq 2\cdot10^5,1\leq b_i\leq n$。
查看答案
赣ICP备20007335号-2