| Codeforces Round 1047 (Div. 3) |
|---|
| Закончено |
Дан массив $$$a$$$, пусть $$$f(x)$$$ — это количество вхождений $$$x$$$ в массиве $$$a$$$. Например, если $$$a=[1,2,3,1,4]$$$, то $$$f(1)=2$$$ и $$$f(3)=1$$$.
У вас есть массив $$$b$$$ размера $$$n$$$. Пожалуйста, определите, существует ли массив $$$a$$$ размера $$$n$$$, такой что $$$f(a_i)=b_i$$$ для всех $$$1 \leq i \leq n$$$. Если такой массив существует, постройте его.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора содержит целое число $$$n$$$ ($$$1 \leq n \leq 2\cdot 10^5$$$).
Вторая строка содержит $$$n$$$ целых чисел $$$b_1,b_2,\ldots,b_n$$$ ($$$1 \leq b_i \leq n$$$).
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2\cdot 10^5$$$.
Для каждого набора входных данных выведите $$$-1$$$, если нет подходящего массива $$$a$$$.
В противном случае выведите массив $$$a$$$ из $$$n$$$ целых чисел на новой строке. Элементы должны удовлетворять условию $$$1 \leq a_i \leq n$$$.
341 2 3 461 2 2 3 3 366 6 6 6 6 6
-1 4 5 5 6 6 6 2 2 2 2 2 2
В первом примере можно показать, что не существует массива, который соответствует требованиям.
Во втором примере $$$4$$$, $$$5$$$, $$$6$$$ встречаются $$$1,2,3$$$ раза соответственно. Таким образом, выходной массив корректен, так как $$$f(4),f(5),f(5),f(6),f(6),f(6)$$$ равны $$$1,2,2,3,3,3$$$ соответственно.
| Название |
|---|


