CF1744D.Divisibility by 2^n

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array of positive integers a1,a2,,ana_1, a_2, \ldots, a_n .

Make the product of all the numbers in the array (that is, a1a2ana_1 \cdot a_2 \cdot \ldots \cdot a_n ) divisible by 2n2^n .

You can perform the following operation as many times as you like:

  • select an arbitrary index ii ( 1in1 \leq i \leq n ) and replace the value aia_i with ai=aiia_i=a_i \cdot i .

You cannot apply the operation repeatedly to a single index. In other words, all selected values of ii must be different.

Find the smallest number of operations you need to perform to make the product of all the elements in the array divisible by 2n2^n . Note that such a set of operations does not always exist.

输入格式

The first line of the input contains a single integer tt (1t104(1 \leq t \leq 10^4 ) — the number test cases.

Then the descriptions of the input data sets follow.

The first line of each test case contains a single integer nn ( 1n21051 \leq n \leq 2 \cdot 10^5 ) — the length of array aa .

The second line of each test case contains exactly nn integers: a1,a2,,ana_1, a_2, \ldots, a_n ( 1ai1091 \leq a_i \leq 10^9 ).

It is guaranteed that the sum of nn values over all test cases in a test does not exceed 21052 \cdot 10^5 .

输出格式

For each test case, print the least number of operations to make the product of all numbers in the array divisible by 2n2^n . If the answer does not exist, print -1.

输入输出样例

  • 输入#1

    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

    输出#1

    0
    1
    1
    -1
    2
    1

说明/提示

In the first test case, the product of all elements is initially 22 , so no operations needed.

In the second test case, the product of elements initially equals 66 . We can apply the operation for i=2i = 2 , and then a2a_2 becomes 22=42\cdot2=4 , and the product of numbers becomes 34=123\cdot4=12 , and this product of numbers is divided by 2n=22=42^n=2^2=4 .

In the fourth test case, even if we apply all possible operations, we still cannot make the product of numbers divisible by 2n2^n — it will be (131)(172)(13)(14)=5304(13\cdot1)\cdot(17\cdot2)\cdot(1\cdot3)\cdot(1\cdot4)=5304 , which does not divide by 2n=24=162^n=2^4=16 .

In the fifth test case, we can apply operations for i=2i = 2 and i=4i = 4 .

首页