CF2112B.Shrinking Array

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

Shrinking Array

题目描述

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

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

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

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

输入格式

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

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

输出格式

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

说明/提示

样例解释

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

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

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

对于第四组数据,选择 a2,a3a_2,a_3x=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

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