#AT2568. D - Bitmask
D - Bitmask
当前没有测试数据。
D - 位掩码
得分: 400 分
问题描述
给定整数 和一个由 0、1 和 ? 构成的字符串 。
设 是将 中的每个 ? 替换为 0 或 1 并将结果解释为二进制整数得到的值的集合。
例如,如果 ,则得到 $T=\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\rbrace=\lbrace 0,1,4,5\rbrace$。
请将 中不大于 的最大值以十进制整数形式打印出来。
如果 中不存在不大于 的值,则打印 -1。
约束条件
- 是由 0、1 和 ? 构成的字符串。
- 的长度在1到60之间。
- 是一个整数。
输入
输入以以下格式从标准输入给出。
输出
输出答案。
样例输入1
?0?
2
样例输出1
1
根据问题描述,。其中,0 和 1 都小于等于 ,所以你应该打印其中最大的数,即 1。
样例输入2
101
4
样例输出2
-1
我们得到 ,其中不包含任何小于等于 的值。
样例输入3
?0?
1000000000000000000
样例输出3
5