P14800 [JOI 2026 二次预选] 船 / Ship

题目描述

意大利的切塞纳蒂科 (Cesenatico) 是一座面向亚得里亚海的港口城市,并以拥有运河而闻名。运河中停泊着船只,也作为旅游景点而闻名。这里,我们想要考虑一个将现实简化后的如下情境设定。 运河是直线状的,并且只有一侧与亚得里亚海相通。另外,运河中停泊着从 1 到 $N$ 编号的 $N$ 艘船,船 $i$ ($1 \le i \le N$) 停泊在距离亚得里亚海 $A_i$ 的位置。 这里,编号较小的船停泊在离亚得里亚海更近的位置。也就是说,成立 $A_1 < A_2 < \dots < A_N$。 你决定为了城里举办的祭典给船上色。具体来说,对每一艘船,从颜色 1 到颜色 $N$ 的 $N$ 种颜色中选择 1 种颜色,并用该颜色给船上色。这里,希望满足以下条件。 - 对于任意颜色 $c$ ($1 \le c \le N$),被涂成颜色 $c$ 的船的数量**不是** 1 艘。注意,也**可以不存在**被涂成颜色 $c$ 的船。 - 若被涂成颜色 $c$ 的船有 2 艘以上,则被涂成颜色 $c$ 的船等间隔排列。换句话说,对被涂成颜色 $c$ 的船,将其到亚得里亚海的距离按升序排列得到的序列是等差数列。 为了让船看起来更美观,定义如下所表示的**美丽度**。 - 在同一种颜色涂装的不同两艘船之间的距离中可能的最小值。这里,船 $i$ 与船 $j$ ($1 \le i \le N,\ 1 \le j \le N,\ i \ne j$) 之间的距离定义为 $|A_i - A_j|$。 给定船的信息时,请编写程序判断是否存在满足条件的船的涂色方式;若存在,则求出作为美丽度可能的最大值。

输入格式

输入以如下形式给出。 > $N$ > $A_1\ \ A_2\ \ A_3\ \ \dots\ \ A_N$

输出格式

若不存在满足条件的船的涂色方式,则输出 $-1$。 若存在,输出一行:美丽度可能的最大值。

说明/提示

### 样例解释 #### 样例 $1$ 解释 例如,作为**不满足**条件的船的涂色方式,可以考虑如下。 - 将船 1 涂成颜色 1,将船 2 涂成颜色 2。 在这种涂色方式中,被涂成颜色 1 的船的数量为 1 艘,因此不满足条件。 例如,作为满足条件的船的涂色方式,可以考虑如下。 - 将船 1 与船 2 涂成颜色 2。 在这种涂色方式中,不存在被涂成颜色 1 的船,因此满足关于颜色 1 的条件。另外,将被涂成颜色 2 的船到亚得里亚海的距离按升序排列得到的序列为 $(1, 2)$,这是等差数列,因此满足关于颜色 2 的条件。于是,这种涂色方式满足条件。 在这种涂色方式中,同色涂装的两艘船的组合是船 1 与船 2。这两艘船之间的距离为 $|A_1 - A_2| = |1 - 2| = 1$。因此,美丽度为 1。 由于无法使美丽度达到 2 以上,因此输出 1。 该输入示例满足所有子任务的约束。 #### 样例 $2$ 解释 为了对任意颜色都使得被涂成该颜色的船的数量不是 1 艘,必须将船 1、2、3 涂成同一种颜色。 此时,将与船 1 被涂的颜色相同的船到亚得里亚海的距离按升序排列得到的序列为 $(1, 10, 100)$,这不是等差数列。 因此,不存在满足条件的船的涂色方式,所以输出 $-1$。 该输入示例满足子任务 2、3、4、5 的约束。 #### 样例 $3$ 解释 例如,作为满足条件的船的涂色方式,可以考虑如下。 - 将船 1、船 3、船 5 涂成颜色 1,将船 2、船 4 涂成颜色 4。 在这种涂色方式中,同色涂装的两艘船的组合共有 4 组,分别是船 1 与船 3、船 1 与船 5、船 2 与船 4、船 3 与船 5。这些组合中两艘船之间的距离分别为 3、6、3、3。因此,美丽度为 3。 由于无法使美丽度达到 4 以上,因此输出 3。 该输入示例满足子任务 2、3、4、5 的约束。 ### 约束 - $2 \le N \le 3\,500$。 - $1 \le A_i \le 10^9$ ($1 \le i \le N$)。 - $A_i < A_{i+1}$ ($1 \le i \le N-1$)。 - 输入的值全部为整数。 ### 子任务 - (8 分) $A_i = i$ ($1 \le i \le N$)。 - (11 分) $N \le 7$。 - (12 分) $N \le 100$。 - (39 分) $N \le 700$。 - (30 分) 没有额外约束。