#P1004. Farmer John's Favorite Permutation

Farmer John's Favorite Permutation

USACO 2024 US Open Contest, Bronze

Problem 3. Farmer John's Favorite Permutation

Farmer John有一个长度为NN2N1052 \leq N \leq 10^5)的排列pp,其中包含从11NN的每个正整数恰好一次。然而,Farmer Nhoj闯入了FJ的谷仓并打乱了pp。为了不太残忍,FN写下了一些提示来帮助FJ重建pp。当pp中还有多个元素时,FN执行以下操作: 设pp的剩余元素为p1,p2,,pnp'_1, p'_2, \dots, p'_n, 如果p1>pnp'_1 > p'_n,他写下p2p'_2并从排列中移除p1p'_1。 否则,他写下pn1p'_{n - 1}并从排列中移除pnp'_n。 最后,Farmer Nhoj将按顺序写下N1N - 1个整数h1,h2,,hN1h_1, h_2, \dots, h_{N - 1}。给定hh,Farmer John希望你帮助重建与Farmer Nhoj的提示一致的字典序最小的pp,或者确定Farmer Nhoj一定犯了错误。回想一下,如果你有两个排列pppp',如果在两个排列首次不同的位置ii处,pi<pip_i < p'_i,则pp在字典序上小于pp'

输入格式(从终端/标准输入读取输入)

每个输入由TT个独立的测试用例组成(1T101\le T\le 10)。每个测试用例描述如下:

  • 第一行包含NN
  • 第二行包含N1N - 1个整数h1,h2,,hN1h_1, h_2, \dots, h_{N - 1}1hiN1\le h_i\le N)。

输出格式(将输出打印到终端/标准输出)

输出TT行,每个测试用例一行。 如果存在与hh一致的1N1\dots N的排列pp,输出字典序最小的这样的pp。如果不存在这样的pp,输出1-1

示例输入

5
2
1
2
2
4
1 1 1
4
2 1 1
4
3 2 1

示例输出

1 2
-1
-1
3 1 2 4
1 2 3 4

对于第四个测试用例,如果p=[3,1,2,4]p = [3,1,2,4],那么FN将写下h=[2,1,1]h = [2,1,1]

p' = [3,1,2,4]
p_1' < p_n' -> h_1 = 2
p' = [3,1,2]
p_1' > p_n' -> h_2 = 1
p' = [1,2]
p_1' < p_n' -> h_3 = 1
p' = [1]

注意,排列p=[4,2,1,3]p = [4,2,1,3]也会产生相同的hh,但[3,1,2,4][3,1,2,4]在字典序上更小。 对于第二个测试用例,不存在与hh一致的ppp=[1,2]p = [1,2]p=[2,1]p = [2,1]都会产生h=[1]h = [1],而不是h=[2]h = [2]

评分

  • 输入2:N8N\le 8
  • 输入3 - 6:N100N\le 100
  • 输入7 - 11:无额外限制。

问题提供者:Chongtian Ma