「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$。
**所有满足要求的输出均可通过。**
输入输出样例
输入样例 #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$ 的排列。
**只有你通过本题的所有测试点,你才能获得本题的分数。**
**本题输入输出量较大,请使用较快的输入输出方式。**