比赛场次 638
比赛名称 20241023
比赛状态 已结束比赛成绩
开始时间 2024-10-23 07:40:00
结束时间 2024-10-23 11:40:00
开放分组 全部用户
注释介绍
题目名称 Farmer John’s Favorite Permutation
输入输出 permutation.in/out
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar┭┮﹏┭┮ AAAAAAAAAA 0.860 s 4.29 MiB 100
Gravatarflyfree AAAAAAAAAA 0.863 s 4.51 MiB 100
Gravatar健康铀 AAAAAAAAAA 0.878 s 3.96 MiB 100
Gravatarwdsjl AAAAAAAAAA 0.916 s 4.52 MiB 100
GravatardarkMoon AAAAAAAAAA 1.851 s 4.37 MiB 100
Gravatar小金 AAAAAAAAAA 1.857 s 4.80 MiB 100
GravatarDavinci AAAAAAAAAA 1.948 s 4.60 MiB 100
Gravataryuan ATTTTTTTTT 18.024 s 4.15 MiB 10

Farmer John’s Favorite Permutation

★☆   输入文件:permutation.in   输出文件:permutation.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

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


令 $p$ 的剩余元素为 $p_1^\prime,p_2^\prime,\ldots,p_n^\prime$,


$\bullet$ 如果 $p_1^\prime>p_n^\prime$,他写下 $p_2^\prime$ 并从排列中删除 $p_1^\prime$。

$\bullet$ 否则,他写下 $p_{n−1}^\prime$ 并从排列中删除 $p_n^\prime$。


最终,$Farmer$ $Nhoj$ 将按顺序写下 $N−1$ 个整数 $h_1,h_2,\ldots,h_{N−1}$。给定 $h$,$Farmer$ $John$

希望得到你的帮助重建与 $Farmer$ $Nhoj$ 的提示相一致的最小字典序 $p$,或者判断 $Farmer Nhoj$

一定犯了错误。我们知道,给定两个排列 $p$ 和 $p^\prime$,如果在第一个两者不同的位置 $i$ 处有

$p_i<p_i^\prime$,则 $p$ 的字典序小于 $p^\prime$。

【输入格式】

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

第一行包含 $N$。

第二行包含 $N−1$ 个整数 $h_1,h_2,\ldots,h_{N−1}$($1\le h_i\le N$)。

【输出格式】

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

如果存在与 $h$ 相一致的 $1\ldots N$ 的排列 $p$,输出字典顺序最小的 $p$。如果不存在这样的 $p$,输出 $-1$。

【样例1输入】

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

【样例1输出】

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

【样例1说明】

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

$p' = [3,1,2,4]$

$p_1' < p_n'\Rightarrow h_1 = 2$

$p' = [3,1,2]$

$p_1' > p_n' \Rightarrow h_2 = 1$

$p' = [1,2]$

$p_1' < p_n' \Rightarrow h_3 = 1$

$p' = [1]$


注意排列 $p=[4,2,1,3]$ 也会产生同样的 $h$,但 $[3,1,2,4]$ 字典序更小。


对于第二个测试用例,不存在与 $h$ 相一致的 $p$;$p=[1,2]$ 和 $p=[2,1]$ 均会产生 $h=[1]$,并非 $h=[2]$。

【样例2输入输出】

点击下载样例2 

【数据规模与约定】

$\bullet$ 测试点 $1$:$N\le 8$。

$\bullet$ 测试点 $2-5$:$N\le 100$。

$\bullet$ 测试点 $6-10$:没有额外限制。

【来源】

USACO