问题 5524 --探索二的幂次

5524: 探索二的幂次

时间限制: 2 Sec  内存限制: 256 MB
提交: 55  解决: 9
[提交][状态][命题人:]

题目描述

给定一组正整数a1a2…,an。使数组中所有数的乘积(即a1⋅a2…⋅an)可被2n整除。

您可以根据需要多次执行以下操作:选择任意下标i1≤i≤n),将ai替换为aii

但不能对单个下标重复操作。换句话说,所有选定的i值必须不同。

找到需要执行的最小操作数,以使数组中所有元素的乘积可被2n整除。注意,这样一组操作并不总是存在的。

输入

输入的第一行包含一个整数t(1≤t≤104),代表测试用例的数量。

每个测试用例的第一行包含一个整数n(1≤n≤2⋅105),代表数组a的长度。

每个测试用例的第二行正好包含n个整数:a1a2…,an1≤ai≤109)。

保证测试中所有测试用例的n值之和不超过2⋅105。

 

输出

对于每个测试用例,打印最少的操作数,使数组中所有数字的乘积可被2n整除。如果答案不存在,请打印-1。

样例输入
Copy
6
1
2
2
3 2
3
10 6 11
4
13 17 1 1
5
1 1 12 1 1
6
20 7 14 18 3 5
样例输出
Copy
0
1
1
-1
2
1

提示

在第一个测试用例中,所有元素的乘积最初都为2,因此不需要任何操作。

在第二个测试用例中,元素的乘积最初等于6。我们可以对i=2进行操作,使a2变为2⋅2=4,所有元素的乘积变为3⋅4=12,这个数的乘积可被2n224整除。

在第四个测试用例中,即使我们应用了所有可能的运算,我们仍然无法使数的乘积可被2n整除,因为乘积将是(13⋅1)⋅(17⋅2)⋅(1⋅3)⋅(1⋅4)5304,不能被2n2416整除。

在第五个测试用例中,我们可以对i=2和i=4进行操作。

来源

[提交][状态]