奇偶调整
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

UPD:本题假了,hack数据如下:
2 2 1
11 9
正确答案应该为 13 ,而不是 14 。

小红有一个长度为 n 的数组 a ,第 i 个元素为 a_i
小红可以执行两种操作,操作内容如下:
1.选择一个偶数元素 a_i ,令 a_i=a_i/2
2.选择一个奇数元素 a_i ,令 a_i=a_i \oplus 1
其中,操作 1 最多执行 m 次,操作 2 最多执行 k 次。
小红想最小化数组元素之和,请你输出这个值。
\oplus 代表按位异或。

输入描述:

第一行有三个整数 n\ (\ 1 \leq n \leq 10^5\ )m\ (\ 1 \leq m \leq 10^9\ )k\ (\ 1 \leq k \leq 10^9\ )
第二行有 n 个整数 a_i\ (\ 1 \leq a_i \leq 10^9\ )

输出描述:

输出一个整数,代表最小的数组元素之和。
示例1

输入

复制
5 3 4
1 2 3 4 5

输出

复制
6

说明

a_1 使用操作 2 ,数组变为 [0,2,3,4,5]
a_2 使用操作 1 ,数组变为 [0,1,3,4,5]
a_2 使用操作 2 ,数组变为 [0,0,3,4,5]
a_3 使用操作 2 ,数组变为 [0,0,2,4,5]
a_4 使用操作 1 ,数组变为 [0,0,2,2,5]
a_5 使用操作 2 ,数组变为 [0,0,2,2,4]
a_5 使用操作 1 ,数组变为 [0,0,2,2,2]
最后数组元素之和为 6

备注:

问句题外话,你喜欢爬山吗?