CF1025D.Recovering BST

传统题 文件IO:bst 时间 1000 ms 内存 256 MiB 9 尝试 51 已通过 4 标签

Recovering BST

题目描述

仓鼠 Dima 喜欢啃各种各样的东西:笼子、木棍、不良出题人,甚至还有树!

最近,他发现了一棵二叉搜索树,本能地啃掉了它所有的边,把顶点搞得一团糟。Dima 知道,如果辛辛苦苦组装了这棵树很久的 Andrew 回到家,看到他精心打造的作品被毁了,一定会非常生气。

为了避免这种事发生,Dima 必须把这棵二叉搜索树恢复原状。幸运的是,他注意到:任何两个有边直接相连的顶点,它们的最大公约数都大于 11。

请帮 Dima 构造出这样一棵二叉搜索树,或者判断这不可能做到。二叉搜索树的定义和性质可以点击这里查看。

输入

第一行包含顶点个数 nn(2≤n≤7002 \le n \le 700)。

第二行包含 nn 个互不相同的整数 aia_i(2≤ai≤1092 \le a_i \le 10^9)—— 按升序排列的各个顶点的值。

输出

如果能够重新组装出一棵二叉搜索树,使得任意一条边所连接的两个顶点的最大公约数都大于 11,则输出 "Yes"(引号仅为清晰起见)。

否则输出 "No"。

样例

样例 1

输入:

6
3 6 9 18 36 108

输出:

Yes

样例 2

输入:

2
7 17

输出:

No

样例 3

输入:

9
4 8 10 12 15 18 33 44 81

输出:

Yes

样例说明

第一个样例中一种可能的树形结构如下图所示。

第三个样例中一种可能的树形结构如下图所示。

在线编程 IDE

建议全屏模式获得最佳体验