#6651. 数学巧思(math)
数学巧思(math)
数学巧思(math)
题目描述
小明最近在学习《计算机组成原理》,了解到计算机中的数字通常以二进制形式存储。于是,他想到一个有趣的数学问题。
给定一个二进制整数 ,可以对它的二进制表示进行以下两种操作:
- 操作 1:选择 的任意一个二进制位,如果该位是 ,则将其变为 (最多进行 次)。
- 操作 2:选择 的任意一个二进制位,如果该位是 ,则将其变为 (最多进行 次)。
在最多进行 次操作 1 和 次操作 2 后,如何调整 的二进制位,使得最终 的十进制值最大?
注意:本题中二进制数的最高位不代表符号位。
输入格式
输入数据共两行。
第一行输入三个整数 、、:
- 表示二进制数 的位数;
- 表示最多可以进行 次操作 1;
- 表示最多可以进行 次操作 2。
第二行输入一个长度为 的二进制整数 。
输出格式
输出一行一个整数,表示经过最多 次操作 1 和 次操作 2 后, 在十进制下的最大值。
样例 1
输入
5 10 3
11111
输出
31
说明
什么操作也不用做。
因为原数已经全部由 组成,任何操作都会使其变小,因此最大值为 。
样例 2
输入
3 1 2
100
输出
6
数据范围与约定
对于 的数据:
对于 的数据:
相关
在下列比赛中: