#18009. K - Bitmask

K - Bitmask

题目描述

题目翻译

D - 位掩码

问题描述

给定一个由字符 01? 组成的字符串 S 和一个整数 N。
将 S 中的每个 ? 替换为 01,可以得到一个二进制字符串(可能包含前导零)。
将这些二进制字符串解释为二进制数(忽略前导零)后,求所有不超过 N 的数的最大值。
如果不存在这样的数,则输出 -1

输入格式

第一行输入一个字符串S
第二行输入一个数N

?0?
2
1

解释

字符串 ?0? 可以替换为 000001100101,对应的二进制数分别为 0、1、4、5。
其中不超过 2 的数的最大值为 1。

101
4
-1
?0?
1000000000000000000
5

提示

  • S 是由 01? 组成的字符串。
  • S 的长度在 1 到 60 之间。
  • 0 ≤ N ≤ 10¹⁸
  • N 是整数。