CF1025D Recovering BST

题目描述

仓鼠 Dima 喜欢啃各种东西:笼子、树枝、糟糕的出题人,甚至是树! 最近他发现了一棵二叉搜索树,并本能地啃掉了所有的边,因此把所有的顶点都弄乱了。Dima 知道,如果 Andrew 回家看到自己辛苦组装的树被毁了,他会非常难过。 为了不让这种事发生,Dima 必须恢复这棵二叉搜索树。幸运的是,他注意到,任何通过一条直接边相连的两个顶点,它们的最大公约数都大于 $1$。 请你帮助 Dima 构造这样一棵二叉搜索树,或者判断是否不可能。二叉搜索树的定义和性质可以在[这里](https://en.wikipedia.org/wiki/Binary_search_tree)找到。

输入格式

第一行包含一个整数 $n$($2 \le n \le 700$),表示顶点的数量。 第二行包含 $n$ 个互不相同的整数 $a_i$($2 \le a_i \le 10^9$),表示顶点的值,按升序排列。

输出格式

如果可以重新组装出一棵满足任意通过一条边直接相连的两个顶点的最大公约数大于 $1$ 的二叉搜索树,输出 "Yes"(不含引号)。 否则,输出 "No"(不含引号)。

说明/提示

下图展示了第一个样例的一种可能的树结构。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1025D/a6281ebfc3addc046e3a216e978640a7d00d938f.png) 下图展示了第三个样例的一种可能的树结构。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1025D/422d22e6560dde35033dafdd73125c60e4d294d8.png) 由 ChatGPT 4.1 翻译