#18009. K - Bitmask
K - Bitmask
题目描述
题目翻译
D - 位掩码
问题描述
给定一个由字符 0
、1
、?
组成的字符串 S 和一个整数 N。
将 S 中的每个 ?
替换为 0
或 1
,可以得到一个二进制字符串(可能包含前导零)。
将这些二进制字符串解释为二进制数(忽略前导零)后,求所有不超过 N 的数的最大值。
如果不存在这样的数,则输出 -1
。
输入格式
第一行输入一个字符串S
第二行输入一个数N
?0?
2
1
解释
字符串 ?0?
可以替换为 000
、001
、100
、101
,对应的二进制数分别为 0、1、4、5。
其中不超过 2 的数的最大值为 1。
101
4
-1
?0?
1000000000000000000
5
提示
- S 是由
0
、1
、?
组成的字符串。 - S 的长度在 1 到 60 之间。
- 0 ≤ N ≤ 10¹⁸
- N 是整数。