luogu#P10276. [USACO24OPEN] Farmer John's Favorite Permutation B

[USACO24OPEN] Farmer John's Favorite Permutation B

题目描述

Farmer John 有一个长为 NN2N1052\le N\le 10^5)的排列 pp,包含从 11NN 的每个正整数恰好一次。然而,Farmer Nhoj 闯入了 FJ 的牛棚并拆散了 pp。为了不至于太过残忍,FN 写了一些能够帮助 FJ 重建 pp 的提示。当 pp 中剩余多于一个元素时,FN 会执行以下操作:

pp 的剩余元素为 p1,p2,,pnp_1^\prime,p_2^\prime,\ldots,p_n^\prime

  • 如果 p1>pnp_1^\prime>p_n^\prime,他写下 p2p_2^\prime 并从排列中删除 p1p_1^\prime
  • 否则,他写下 pn1p_{n−1}^\prime 并从排列中删除 pnp_n^\prime

最终,Farmer Nhoj 将按顺序写下 N1N−1 个整数 h1,h2,,hN1h_1,h_2,\ldots,h_{N−1}。给定 hh,Farmer John 希望得到你的帮助重建与 Farmer Nhoj 的提示相一致的最小字典序 pp,或者判断 Farmer Nhoj 一定犯了错误。我们知道,给定两个排列 pppp^\prime,如果在第一个两者不同的位置 ii 处有 pi<pip_i<p_i^\prime,则 pp 的字典序小于 pp^\prime

输入格式

每个测试点包含 TT 个独立的测试用例(1T101\le T\le 10)。每个测试用例的描述如下:

第一行包含 NN

第二行包含 N1N−1 个整数 h1,h2,,hN1h_1,h_2,\ldots,h_{N−1}1hiN1\le h_i\le N)。

输出格式

输出 TT 行,每个测试用例一行。

如果存在与 hh 相一致的 1N1\ldots 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]

测试点性质

  • 测试点 22N8N\le 8
  • 测试点 363-6N100N\le 100
  • 测试点 7117-11:没有额外限制。