问题 6781 --漂亮数组

6781: 漂亮数组★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 16  解决: 5
[提交][状态][命题人:]

题目描述

如果可以通过使用以下操作(任意次数,可能为零次)使其所有元素都相同,那么这个数组可以称之为漂亮数组:

   选择一个索引i(2i|a|-1),使ai-1=ai+1,并将ai替换为ai-1

注:这个操作的具体含义就是,对于一个数ai, 如果其左右两边的数ai-1和ai+1是相等的,则可以把ai替换为和左右两边一样的数。

你会得到一个漂亮的数组a1a2,…,an,为了使它不再漂亮,你必须从中删除的最小元素数量是多少?禁止更换元素。如果不可能这样做,则输出-1。

输入

第一行包含一个整数t(1≤t104)--测试用例的数量。

每个测试用例的第一行包含一个整数n1≤n≤3105).

第二行包含n整数a1a2、…、an1ain).

输入的其他限制:

在每个测试用例中,给定的数组a都很漂亮;

所有测试用例的n之和不超过3105

输出

对于每个测试用例,输出一个整数——你必须从数组a中删除的最小元素数,以使其不再漂亮。如果不可能,则输出-1

样例输入
Copy
4
3
2 2 2
5
1 2 1 2 1
1
1
7
3 3 3 5 3 3 3
样例输出
Copy
-1
1
-1
3

提示

在第一个测试用例中,不可能对数组进行修改,使其不再漂亮。无论我们从数组中删除多少个数字,由相同数字组成的数组都会保持漂亮。

例如,在第二个测试用例中,您可以删除索引5处的数字。

得到的数组将是[1,2,1,2]。让我们看看它是否漂亮。有两种操作可供选择:

i=2:数组变为[1,1,1,2]。不能再对其应用任何操作,而且数字也不完全相同。

i=3:数组变为[1,2,2]。也不能对它应用更多的操作,而且数字仍然不完全相同。

因此,数组[1,2,1,2]并不漂亮。

例如,在第四个测试用例中,你可以删除前三个元素。得到的数组[5,3,3,3]并不漂亮。

来源

[提交][状态]