CF1158C.Permutation recovery
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Vasya has written some permutation p1,p2,…,pn of integers from 1 to n , so for all 1≤i≤n it is true that 1≤pi≤n and all p1,p2,…,pn are different. After that he wrote n numbers next1,next2,…,nextn . The number nexti is equal to the minimal index i<j≤n , such that pj>pi . If there is no such j let's let's define as nexti=n+1 .
In the evening Vasya went home from school and due to rain, his notebook got wet. Now it is impossible to read some written numbers. Permutation and some values nexti are completely lost! If for some i the value nexti is lost, let's say that nexti=−1 .
You are given numbers next1,next2,…,nextn (maybe some of them are equal to −1 ). Help Vasya to find such permutation p1,p2,…,pn of integers from 1 to n , that he can write it to the notebook and all numbers nexti , which are not equal to −1 , will be correct.
输入格式
The first line contains one integer t — the number of test cases ( 1≤t≤100000 ).
Next 2⋅t lines contains the description of test cases,two lines for each. The first line contains one integer n — the length of the permutation, written by Vasya ( 1≤n≤500000 ). The second line contains n integers next1,next2,…,nextn , separated by spaces ( nexti=−1 or i<nexti≤n+1 ).
It is guaranteed, that the sum of n in all test cases doesn't exceed 500000 .
In hacks you can only use one test case, so T=1 .
输出格式
Print T lines, in i -th of them answer to the i -th test case.
If there is no such permutations p1,p2,…,pn of integers from 1 to n , that Vasya could write, print the only number −1 .
In the other case print n different integers p1,p2,…,pn , separated by spaces ( 1≤pi≤n ). All defined values of nexti which are not equal to −1 should be computed correctly p1,p2,…,pn using defenition given in the statement of the problem. If there exists more than one solution you can find any of them.
输入输出样例
输入#1
6 3 2 3 4 2 3 3 3 -1 -1 -1 3 3 4 -1 1 2 4 4 -1 4 5
输出#1
1 2 3 2 1 2 1 3 -1 1 3 2 1 4
说明/提示
In the first test case for permutation p=[1,2,3] Vasya should write next=[2,3,4] , because each number in permutation is less than next. It's easy to see, that it is the only satisfying permutation.
In the third test case, any permutation can be the answer because all numbers nexti are lost.
In the fourth test case, there is no satisfying permutation, so the answer is −1 .