#abc301d. [abc301_d]Bitmask
[abc301_d]Bitmask
问题描述
给定一个整数和一个由0
、1
和?
组成的字符串。令为替换中的每个?
为0
或1
所得到的值的集合,并将结果解释为二进制整数。例如,如果 ?0?
,则$T=\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\rbrace=\lbrace 0,1,4,5\rbrace$。
按照十进制整数的形式打印出中小于或等于的最大值。如果中不存在小于或等于的值,则打印-1
。
约束条件
- 是一个由
0
、1
和?
组成的字符串。 - 的长度在到之间,包括边界值。
- 是一个整数。
输入
输入以以下格式从标准输入中给出:
输出
打印输出答案。
示例输入1
?0?
2
示例输出1
1
如问题描述所示,。其中,和小于或等于,所以应该打印它们中的最大值。
示例输入2
101
4
示例输出2
-1
我们有,它不包含小于或等于的值。
示例输入3
?0?
1000000000000000000
示例输出3
5