小红的贪心
题号:NC288780
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红拿到了一个由 n 个正整数组成的数组 \{a_1, a_2, \dots, a_n\},她可以进行以下操作最多 k 次:
\hspace{23pt}\bullet\,选择一个元素 a_i,若 a_i 是奇数,则使其加 1;若 a_i 是偶数,则使其除以 2
\hspace{15pt}小红希望操作结束后,所有元素乘积的二进制表示的末尾有尽可能多的 0。请你帮小红求出二进制末尾 0 的数量。

输入描述:

\hspace{15pt}第一行输入两个正整数 n,k \left(1 \leq n,k \leq 3 \times 10^3\right) 代表数组中的元素数量、操作次数。 
\hspace{15pt}第二行输入 n 个正整数 a_1, a_2, \dots, a_n \left(1 \leq a_i \leq 10^9\right) 代表数组中的元素。

输出描述:

\hspace{15pt}输出一个整数,代表最终所有元素乘积的二进制末尾 0 数量的最大值。
示例1

输入

复制
3 1
5 2 3

输出

复制
3

说明

\hspace{15pt}在这个样例中,最优的操作为对 a_3 操作一次,得到数组 \{5, 2, 4\},乘积为 40,二进制表示为 (101000)_2,末尾有 30