logo AlgoBeat OnlineJudge
登录 注册

#216258. [ECUSTPC 2025] 钟塔

内存限制:1024 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

Maddy 准备重建一座钟塔……
Maddy 有一个长度为 的序列 ,现在她希望通过最少的操作来让一个长度为 初始全为 0 的序列 变为 ,其中每次操作的规则如下:

  • Maddy 选择一个坐标 () 和一个方向
  • ,对于所有 ,令 变为
  • ,对于所有 ,令 变为
  • 注意每次操作都会完全覆盖所对应的区间。

请帮助她求出最少所需的操作次数,若不可能通过上述操作达成目的,请报告无解。

输入格式

第一行输入一个整数 (),表示数据组数。
每组测试数据的第一行输入一个整数 (),表示序列长度。
随后一行输入 个整数 (),表示 Maddy 希望构造得到的序列
保证所有测试数据输入中的

输出格式

对于每组测试数据,若可以通过上述操作达成目的,则输出一行一个整数,表示 Maddy 所需要进行最少的操作次数。
反之则输出一行一个整数

样例

样例输入 1

4
6
1 2 1 1 2 3
3
3 3 3
6
1 1 1 1 1 1
11
1 2 1 3 4 1 2 1 1 2 3

样例输出 1

3
-1
6
6

数据范围与提示

样例 1 解释

对于第 1 个样例,其操作过程可表示为:

  1. 选择 ,序列
  2. 选择 ,序列
  3. 选择 ,序列

容易发现这即是最少步数的操作序列了。
对于第 2 个样例,容易发现无论 Maddy 进行任何操作, 都不可能变为 3。