#CF2137D. Replace with Occurrences

    ID: 6953 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>构造CodeforcesCodeforces Round 1047(Div3)Div3DCF2137D1200

Replace with Occurrences

题目描述

给定一个长度为 nn 的序列 bb,要求构造出另一个长度为 nn 的序列 aa,使得对于新序列中每个元素 aia_i,满足 aia_iaa 中的出现次数恰好为 bib_i。要求 1ain1 \le a_i \le n

输入格式

本题有多组测试数据。

第一行一个正整数 T(1T104)T (1 \le T \le 10^4) 表示测试数据数量。

随后 2T2T 行,第 i+1i + 1i+2i + 2 行为第 ii 组测试数据。第 i+1i + 1 行一个整数 n(1n2105)n (1 \le n \le 2 \cdot 10 ^ 5),表示 bb 的长度,第二行 nn 个整数 bi(1bin)b_i (1 \le b_i \le n),表示 bb 序列。

输出格式

输出答案。若有多个答案,输出任意一个均可。如果不存在答案,输出 -1

样例

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

样例说明

在第一组测试数据中,没有一个数组 aa 符合要求。

在第二组测试数据中, 4,5,64, 5, 6 分别出现了 1,2,31, 2, 3 次,所以 a={4,5,5,6,6,6}a = \{ 4, 5, 5, 6, 6, 6 \} 符合要求。

来源

Codeforces 2137D,英文题名 Replace with Occurrences。