「Cfz Round 3」Sum of Permutation

题目描述

**请注意本题特殊的时间限制。** 给定一个 $1\sim n$ 的排列 $p$。 你需要构造一个长度为 $n$ 的序列 $a$,满足: - 序列 $a$ 中的每个元素均为不大于 $n$ 的正整数; - 不存在有序整数二元组 $(l,r)$,满足 $1 \le l \le r \le n$ 且 $\sum\limits_{i=l}^r a_i=\sum\limits_{i=l}^r p_i$; 或报告无解。 其中,$1\sim n$ 的排列指满足所有不大于 $n$ 的正整数恰好出现一次的序列。

输入输出格式

输入格式


**本题有多组测试数据。** 第一行输入一个整数 $T$,表示测试数据组数。 接下来依次输入每组测试数据。对于每组测试数据: - 第一行输入一个整数 $n$。 - 第二行输入 $n$ 个整数,表示给定的排列 $p$。

输出格式


对于每组数据,输出一行: - 若存在满足条件的序列 $a$,则输出用空格分隔的 $n$ 个整数,表示你构造的序列 $a$; - 若不存在满足条件的序列 $a$,则输出 $-1$。 **所有满足要求的输出均可通过。** 在本题中,由于 checker 的特性,多个空格和换行只会被当做一个空格或换行。你可以利用这个特性来减少你的代码长度。

输入输出样例

输入样例 #1

4
3
3 2 1
2
1 2
5
4 2 1 5 3
7
5 7 3 1 2 4 6

输出样例 #1

1 3 3
-1
5 3 2 1 1
2 3 5 4 6 3 1

说明

#### 「样例解释 #1」 对于第 $1$ 组数据,$\{1,3,3\}$ 和 $\{1,1,3\}$ 均为满足条件的序列 $a$。 对于第 $2$ 组数据,可以证明不存在满足条件的序列 $a$。 对于第 $3$ 组数据,除 $\{5,3,2,1,1 \}$ 外,$\{3,4,5,3,2 \}$、$\{1,4,5,3,4 \}$、$\{5,3,3,4,5\}$ 等均为满足条件的序列 $a$。 #### 「数据范围」 设 $\sum n$ 表示单个测试点中 $n$ 的和。 对于所有数据,$1 \le T \le 5000$,$2 \le n \le 10^6$,$\sum n \le 10^6$,保证 $p$ 是 $1\sim n$ 的排列。 **只有你通过本题的所有测试点,你才能获得本题的分数。** **本题输入输出量较大,请使用较快的输入输出方式。**