P15913 [TOPC 2024] In Search of the Lost Array
题目描述
在一个被遗忘的国度中,一群冒险者偶然发现了藏于古老图书馆深处的神秘卷轴。这些卷轴中隐藏着一个强大的数值数组的秘密,这个数组控制着整个国度的魔法。然而,卷轴在岁月中已经损坏,只剩下一些碎片。具体来说,冒险者们发现了一个数字序列,它代表了某个未知数组 $A$ 中相邻元素乘积的集合。
原始数组 $A$ 由 $n$ 个整数 $a_1, a_2, \dots, a_n$ 组成,其中 $1 \le a_i \le 100$($1 \le i \le n$)。卷轴上保留的唯一信息是一个由 $n-1$ 个整数 $b_1, b_2, \dots, b_{n-1}$ 组成的序列,这些数是 $A$ 中相邻元素乘积的 **无序** 集合。换句话说:
$$
\{b_1, b_2, \dots, b_{n-1}\} = \{a_1 \times a_2, a_2 \times a_3, \dots, a_{n-1} \times a_n\}
$$
你的任务是帮助冒险者重构出一个可能的原始数组 $A$。如果存在多个有效的数组 $A$ 能产生相同的序列 $b$,你可以输出其中任意一个。
输入格式
第一行包含一个整数 $n$,表示数组 $A$ 的长度。第二行包含 $n-1$ 个空格分隔的整数 $b_1, b_2, \dots, b_{n-1}$,表示数组 $A$ 中相邻元素乘积的集合。
输出格式
如果不存在这样的数组 $A$,则输出一行 **No**。否则,第一行输出 **Yes**,第二行输出 $n$ 个空格分隔的整数 $a_1, a_2, \dots, a_n$,使得 $\{b_1, b_2, \dots, b_{n-1}\} = \{a_1 \times a_2, a_2 \times a_3, \dots, a_{n-1} \times a_n\}$。
说明/提示
- $1 < n \le 18$
- $1 \le a_i \le 100$,对于 $i \in \{1, 2, \dots, n\}$
- $1 \le b_i \le 10000$,对于 $i \in \{1, 2, \dots, n - 1\}$
翻译由 DeepSeek V3.2 完成