CF2112B.Shrinking Array

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Shrinking Array

题目描述

序列 bb 是美丽的,当且仅当 bb 的长度至少为 22 且存在一个位置 ii 使得 ∣bi−bi+1∣≤1\vert b_i-b_{i+1}\vert\le 1。

给你一个序列 aa,你可以执行以下操作直到其长度少于 22。

  • 选择 aa 中两个相邻的位置 ii 和 i+1i+1。
  • 选择一个整数 xx 使得 min⁡(ai,ai+1)≤x≤max⁡(ai,ai+1)\min(a_i,a_{i+1})\le x\le \max(a_i,a_{i+1})。
  • 删除 aia_i 和 ai+1a_{i+1},并在它们的位置插入一个 xx。这会使得 aa 的长度减少 11。

计算最少需要多少次操作使得 aa 变得美丽,或报告这是不可能的。

输入格式

多组数据。第一行一个整数 t(1≤t≤200)t(1\le t\le 200),表示数据组数。

对于每组数据,第一行一个整数 n(2≤n≤1000)n(2\le n\le 1000),表示 aa 的大小。
第二行 nn 个整数 a1,a2,⋯ ,an(1≤ai≤106)a_1,a_2,\cdots,a_n(1\le a_i\le 10^6)。

输出格式

对于每组数据,如果可以通过操作使得 aa 为美丽的,输出一行一个整数表示答案;否则输出一行 −1-1 表示无解。

说明/提示

样例解释

对于第一组数据,∣a2−a3∣=∣3−3∣=0\vert a_2-a_3\vert=\vert 3-3\vert=0,因此 aa 是美丽的。

对于第二组数据,执行操作会让 aa 的长度小于 22,所以不可能使得 aa 美丽。

对于第三组数据,选择 a1,a2a_1,a_2 和 x=2x=2,操作后的序列 [2,3,7][2,3,7] 是美丽的。

对于第四组数据,选择 a2,a3a_2,a_3 和 x=3x=3,操作后的序列 [1,3,2][1,3,2] 是美丽的。

样例

4
4
1 3 3 7
2
6 9
4
3 1 3 7
4
1 3 5 2
0
-1
1
1

在线编程 IDE

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