Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for _ in range(int(input())):
- n=int(input())
- b=list(map(int,input().split()))
- visited=[0]*(2*n)
- next_indices=[]
- positive=[]
- flag=0
- index=0
- for i in b:
- if(i==-1):
- index+=1
- continue
- if(i > (index+1)):
- flag=1
- break
- if(positive):
- if(i<positive[-1]):
- flag=1
- break
- if(positive[-1]!=i):
- positive.append(i)
- next_indices.append(index)
- else:
- positive.append(i)
- index+=1
- visited[i]=1
- if(flag):
- print(-1)
- else:
- res=[-1]*n
- for i in range(len(next_indices)):
- res[next_indices[i]]=positive[i]
- unused=0
- for i in range(n):
- if(res[i]!=-1):
- continue
- while(visited[unused]):
- unused+=1
- res[i]=unused
- visited[unused]=1
- print(*res)
Advertisement
Add Comment
Please, Sign In to add comment