CF2112B.Shrinking Array

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

序列 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 表示无解。

输入输出样例

  • 输入#1

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

    输出#1

    0
    -1
    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] 是美丽的。

输入解题思路,AI测评打分。不知道怎么写?

首页