#548. 排排队

排排队

排排队

题目描述

这次又轮到你来让学生列队了,与之前相反,今天你想制造一点不规律。

可惜的是,今天 nn 名学生已经按照从矮到高排队排好了。

于是今天你想试试新魔法,每次选择两个相邻的人,把他们合并成一个连体人,并且连体人的身高是合并前两个人身高的按位异或结果。

你希望用最少魔法次数破坏整个队列的不降,即存在一个人比他后面的人高。

输入格式

本题采用多测。

第一行一个正整数 TT 表示数据组数。

对于每组测试数据:

第一行一个整数 nn,表示学生个数。

接下来一行 nn 个整数 a1,a2,,ana_1, a_2, \ldots , a_n,表示每个学生的初始身高。

输出格式

对于每组测试数据,输出一个正整数,表示破坏队列不降需要的最少魔法次数,如果无论如何都达不到,输出 1-1 即可。

样例

Input 1

1
4
2 5 6 8

Output 1

1

Input 2

2
5
1 2 4 6 20
3
1 2 3

Output 2

2
-1

提示说明

  • 对于 100%100\% 的数据,$\sum n\le 2\times 10^5,2\leq n\leq 10^5,a_i\le 10^9,\forall i\in [1,n), a_i\le a_{i+1}$。

Constraints

子任务 nn\le 特殊性质 分值
11 1010 N/A 2020
22 400400 1010
33 10510^5 aia_i 全相等
44 ai=2kia_i=2^{k_i},即每个人初始身高为 22 的幂次
55 N/A 5050