编程题
### 问题描述 大衣有一个的长度为 $N$ 的数组 $A​$,它仅包含正整数元素。 数组 $A$ 的频率数组是一个长度为 $N$ 的数组 $B$,其中 $B_i$ 等于元素 $A_i$ 在数组 $A$ 中出现的次数。 大衣不小心把数组 $A$ 弄丢了,但是有一个数组 $B​$。 你的任务是帮大衣重新构造一个字典序最小的数组 $A$,满足: - $1\le A_i\le 10^5$。 - 数组 $A$ 的频率数组为数组 $B$。 如果存在数组 $A​$,输出该数组,否则输出 $-1​$。 ### 输入格式 第一行输入一个正整数 $T​$ 表示测试数据的组数。 接下来 $T$ 组测试数据每组输入两行: - 第一行输入一个正整数 $N$ 表示数组的长度。 - 第二行输入 $N$ 个整数 $B_1,B_2,\cdots,B_N$ 表示数组 $B$ 的元素。 ### 输出格式 对于每组测试数据,如果存在数组 $A$,输出该数组,否则输出 $-1$,并换行。 ### 样例输入 ```text 5 5 2 3 3 3 2 5 1 1 1 1 1 5 5 5 5 5 5 3 1 2 4 8 1 3 2 3 2 2 2 3 ``` ### 样例输出 ```text 1 2 2 2 1 1 2 3 4 5 1 1 1 1 1 -1 1 2 3 2 3 4 4 2 ``` ### 说明 样例 $1$:满足条件的字典序最小的数组 $A=[1,2,2,2,1]$。元素 $A_1,A_5$ 出现了 $2$ 次,元素 $A_2,A_3,A_4$ 出现了 $3$ 次。 样例 $2$:满足条件的字典序最小的数组 $A=[1,2,3,4,5]​$。每个元素都只出现了一次。 样例 $3$:满足条件的字典序最小的数组 $A=[1,1,1,1,1]$。每个元素都出现了 $5$ 次。 样例 $3​$:没有满足条件的数组 $A​$。 ### 评测数据规模 对于所有的评测数据,$1\le T\le 20$,$1\le N\le 10^4$,$1\le B_i\le10^4$。
查看答案
赣ICP备20007335号-2