306179: CF1158C. Permutation recovery
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Permutation recovery
题意翻译
有排列$p$, 令$nxt_i$为$p_i$右侧第一个大于$p_i$的数的位置,若不存在则$nxt_i=n+1$ 现在整个$p$和$nxt$的一部分丢失了,请根据剩余的$nxt$,构造出一个符合情况的$p$,输出任意一解。题目描述
Vasya has written some permutation $ p_1, p_2, \ldots, p_n $ of integers from $ 1 $ to $ n $ , so for all $ 1 \leq i \leq n $ it is true that $ 1 \leq p_i \leq n $ and all $ p_1, p_2, \ldots, p_n $ are different. After that he wrote $ n $ numbers $ next_1, next_2, \ldots, next_n $ . The number $ next_i $ is equal to the minimal index $ i < j \leq n $ , such that $ p_j > p_i $ . If there is no such $ j $ let's let's define as $ next_i = 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 $ next_i $ are completely lost! If for some $ i $ the value $ next_i $ is lost, let's say that $ next_i = -1 $ . You are given numbers $ next_1, next_2, \ldots, next_n $ (maybe some of them are equal to $ -1 $ ). Help Vasya to find such permutation $ p_1, p_2, \ldots, p_n $ of integers from $ 1 $ to $ n $ , that he can write it to the notebook and all numbers $ next_i $ , which are not equal to $ -1 $ , will be correct.输入输出格式
输入格式
The first line contains one integer $ t $ — the number of test cases ( $ 1 \leq t \leq 100\,000 $ ). Next $ 2 \cdot 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 \leq n \leq 500\,000 $ ). The second line contains $ n $ integers $ next_1, next_2, \ldots, next_n $ , separated by spaces ( $ next_i = -1 $ or $ i < next_i \leq n + 1 $ ). It is guaranteed, that the sum of $ n $ in all test cases doesn't exceed $ 500\,000 $ . 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 $ p_1, p_2, \ldots, p_n $ of integers from $ 1 $ to $ n $ , that Vasya could write, print the only number $ -1 $ . In the other case print $ n $ different integers $ p_1, p_2, \ldots, p_n $ , separated by spaces ( $ 1 \leq p_i \leq n $ ). All defined values of $ next_i $ which are not equal to $ -1 $ should be computed correctly $ p_1, p_2, \ldots, p_n $ 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