CF1158C.Permutation recovery

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Vasya has written some permutation p1,p2,,pnp_1, p_2, \ldots, p_n of integers from 11 to nn , so for all 1in1 \leq i \leq n it is true that 1pin1 \leq p_i \leq n and all p1,p2,,pnp_1, p_2, \ldots, p_n are different. After that he wrote nn numbers next1,next2,,nextnnext_1, next_2, \ldots, next_n . The number nextinext_i is equal to the minimal index i<jni < j \leq n , such that pj>pip_j > p_i . If there is no such jj let's let's define as nexti=n+1next_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 nextinext_i are completely lost! If for some ii the value nextinext_i is lost, let's say that nexti=1next_i = -1 .

You are given numbers next1,next2,,nextnnext_1, next_2, \ldots, next_n (maybe some of them are equal to 1-1 ). Help Vasya to find such permutation p1,p2,,pnp_1, p_2, \ldots, p_n of integers from 11 to nn , that he can write it to the notebook and all numbers nextinext_i , which are not equal to 1-1 , will be correct.

输入格式

The first line contains one integer tt — the number of test cases ( 1t1000001 \leq t \leq 100\,000 ).

Next 2t2 \cdot t lines contains the description of test cases,two lines for each. The first line contains one integer nn — the length of the permutation, written by Vasya ( 1n5000001 \leq n \leq 500\,000 ). The second line contains nn integers next1,next2,,nextnnext_1, next_2, \ldots, next_n , separated by spaces ( nexti=1next_i = -1 or i<nextin+1i < next_i \leq n + 1 ).

It is guaranteed, that the sum of nn in all test cases doesn't exceed 500000500\,000 .

In hacks you can only use one test case, so T=1T = 1 .

输出格式

Print TT lines, in ii -th of them answer to the ii -th test case.

If there is no such permutations p1,p2,,pnp_1, p_2, \ldots, p_n of integers from 11 to nn , that Vasya could write, print the only number 1-1 .

In the other case print nn different integers p1,p2,,pnp_1, p_2, \ldots, p_n , separated by spaces ( 1pin1 \leq p_i \leq n ). All defined values of nextinext_i which are not equal to 1-1 should be computed correctly p1,p2,,pnp_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
    

说明/提示

In the first test case for permutation p=[1,2,3]p = [1, 2, 3] Vasya should write next=[2,3,4]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 nextinext_i are lost.

In the fourth test case, there is no satisfying permutation, so the answer is 1-1 .

首页