CF1152E Neko and Flashback

题目描述

长度为 $k$ 的排列是指从 $1$ 到 $k$ 的整数中,每个整数恰好出现一次的一个序列。例如,序列 $[3, 1, 2]$ 是长度为 $3$ 的一个排列。 当 Neko 五岁时,他想出了一个长度为 $n$ 的正整数数组 $a$ 和一个长度为 $n-1$ 的排列 $p$。然后,他进行了如下操作: - 构造长度为 $n-1$ 的数组 $b$,其中 $b_i = \min(a_i, a_{i+1})$。 - 构造长度为 $n-1$ 的数组 $c$,其中 $c_i = \max(a_i, a_{i+1})$。 - 构造长度为 $n-1$ 的数组 $b'$,其中 $b'_i = b_{p_i}$。 - 构造长度为 $n-1$ 的数组 $c'$,其中 $c'_i = c_{p_i}$。 例如,如果数组 $a$ 为 $[3, 4, 6, 5, 7]$,排列 $p$ 为 $[2, 4, 1, 3]$,那么 Neko 会构造出如下数组: - $b = [3, 4, 5, 5]$ - $c = [4, 6, 6, 7]$ - $b' = [4, 5, 3, 5]$ - $c' = [6, 7, 4, 6]$ 然后,他把 $b'$ 和 $c'$ 两个数组写在了一张纸上,之后就忘记了。14 年后,当他在打扫房间时,发现了这张写有 $b'$ 和 $c'$ 的旧纸条。然而,他已经不记得当初的数组 $a$ 和排列 $p$ 了。 如果 Neko 当时算错了,导致不存在数组 $a$ 和排列 $p$ 能够得到这样的 $b'$ 和 $c'$,请输出 $-1$。否则,请帮他还原出任意一个可能的数组 $a$。

输入格式

第一行包含一个整数 $n$($2 \leq n \leq 10^5$),表示数组 $a$ 的元素个数。 第二行包含 $n-1$ 个整数 $b'_1, b'_2, \ldots, b'_{n-1}$($1 \leq b'_i \leq 10^9$)。 第三行包含 $n-1$ 个整数 $c'_1, c'_2, \ldots, c'_{n-1}$($1 \leq c'_i \leq 10^9$)。

输出格式

如果不存在数组 $a$ 和排列 $p$ 能够得到给定的 $b'$ 和 $c'$,输出 $-1$。否则,输出 $n$ 个正整数 $a_i$($1 \le a_i \le 10^9$),表示数组 $a$ 的元素。 如果有多组解,输出任意一组均可。

说明/提示

第一个样例的解释见题面。 在第三个样例中,对于 $a = [3, 4, 5, 2, 1, 4, 3, 2]$,一种可能的排列 $p$ 为 $[7, 1, 5, 4, 3, 2, 6]$。此时,Neko 会构造出如下数组: - $b = [3, 4, 2, 1, 1, 3, 2]$ - $c = [4, 5, 5, 2, 4, 4, 3]$ - $b' = [2, 3, 1, 1, 2, 4, 3]$ - $c' = [3, 4, 4, 2, 5, 5, 4]$ 由 ChatGPT 4.1 翻译