CF2112B.Shrinking Array
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
序列 b 是美丽的,当且仅当 b 的长度至少为 2 且存在一个位置 i 使得 ∣bi−bi+1∣≤1。
给你一个序列 a,你可以执行以下操作直到其长度少于 2。
- 选择 a 中两个相邻的位置 i 和 i+1。
- 选择一个整数 x 使得 min(ai,ai+1)≤x≤max(ai,ai+1)。
- 删除 ai 和 ai+1,并在它们的位置插入一个 x。这会使得 a 的长度减少 1。
计算最少需要多少次操作使得 a 变得美丽,或报告这是不可能的。
输入格式
多组数据。第一行一个整数 t(1≤t≤200),表示数据组数。
对于每组数据,第一行一个整数 n(2≤n≤1000),表示 a 的大小。
第二行 n 个整数 a1,a2,⋯,an(1≤ai≤106)。
输出格式
对于每组数据,如果可以通过操作使得 a 为美丽的,输出一行一个整数表示答案;否则输出一行 −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,因此 a 是美丽的。
对于第二组数据,执行操作会让 a 的长度小于 2,所以不可能使得 a 美丽。
对于第三组数据,选择 a1,a2 和 x=2,操作后的序列 [2,3,7] 是美丽的。
对于第四组数据,选择 a2,a3 和 x=3,操作后的序列 [1,3,2] 是美丽的。
输入解题思路,AI测评打分。不知道怎么写?