#P15913. [TOPC 2024] In Search of the Lost Array

    ID: 15836 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划 DP2024ICPC台湾状压 DP

[TOPC 2024] In Search of the Lost Array

说明

在一个被遗忘的国度中,一群冒险者偶然发现了藏于古老图书馆深处的神秘卷轴。这些卷轴中隐藏着一个强大的数值数组的秘密,这个数组控制着整个国度的魔法。然而,卷轴在岁月中已经损坏,只剩下一些碎片。具体来说,冒险者们发现了一个数字序列,它代表了某个未知数组 AA 中相邻元素乘积的集合。

原始数组 AAnn 个整数 a1,a2,,ana_1, a_2, \dots, a_n 组成,其中 1ai1001 \le a_i \le 1001in1 \le i \le n)。卷轴上保留的唯一信息是一个由 n1n-1 个整数 b1,b2,,bn1b_1, b_2, \dots, b_{n-1} 组成的序列,这些数是 AA 中相邻元素乘积的 无序 集合。换句话说:

$$\{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\}$$

你的任务是帮助冒险者重构出一个可能的原始数组 AA。如果存在多个有效的数组 AA 能产生相同的序列 bb,你可以输出其中任意一个。

输入格式

第一行包含一个整数 nn,表示数组 AA 的长度。第二行包含 n1n-1 个空格分隔的整数 b1,b2,,bn1b_1, b_2, \dots, b_{n-1},表示数组 AA 中相邻元素乘积的集合。

输出格式

如果不存在这样的数组 AA,则输出一行 No。否则,第一行输出 Yes,第二行输出 nn 个空格分隔的整数 a1,a2,,ana_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\}$。

8
42 32 84 54 48 40 16
Yes
5 8 4 21 2 8 6 9
6
45 4 5 4 3
Yes
3 1 4 1 5 9
2
3246
No

提示

  • 1<n181 < n \le 18
  • 1ai1001 \le a_i \le 100,对于 i{1,2,,n}i \in \{1, 2, \dots, n\}
  • 1bi100001 \le b_i \le 10000,对于 i{1,2,,n1}i \in \{1, 2, \dots, n - 1\}

翻译由 DeepSeek V3.2 完成