小红有一个整数数组,要求在数组元素上执行最多两次操作(选择一个元素,使其加1),使得数组元素乘积的二进制末尾0的个数尽可能多。我们需要找出操作后的最优方案,返回二进制末尾0的最大数量。
二进制末尾0的数量,实际上就是数字中包含因子2的个数。换句话说,数字中2的幂次方能分解出多少个2。
例如:
4
的二进制是100
,末尾有2个0,说明4 = 2^2
。小红拿到了一个数组,她可以进行最多两次操作:选择一个元素,使其加1。
小红希望操作结束后,数组所有元素乘积的二进制末尾有尽可能多的0。你能帮帮她吗?
第一行输入一个正整数n,代表数组的大小。
第二行输入n个正整数ai,代表数组的元素。
1≤n≤105
1≤ai≤109
输出一个整数,代表操作结束后,数组所有元素乘积的二进制末尾0的数量。
输入
5
1 2 3 4 5
输出
6
操作两次后数组变为[2,2,4,4,5],数组乘积为320,
二进制表示为101000000,有6个0。