#ABC301D. 位掩码

位掩码

位掩码

题目描述

给定整数 NN 和由 0、1、? 组成的字符串 SS。 设 TT 为将 SS 中每个 ? 替换为 0 或 1,并把结果解释为二进制整数所能得到的值的集合。 例如,当 S=S= ?0? 时,有 $T=\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\rbrace=\lbrace 0,1,4,5\rbrace$。

输出 TT 中不大于 NN 的最大值(以十进制整数输出)。 若 TT 中不存在不大于 NN 的值,则输出 -1。

输入格式

输入按以下格式从标准输入给出:

SS
NN

输出格式

输出答案。

样例

?0?
2
1

如题目所述,T={0,1,4,5}T=\lbrace 0,1,4,5\rbrace。 其中不大于 NN 的有 0011,应输出其中最大的 11

101
4
-1

T={5}T=\lbrace 5\rbrace,其中不存在不大于 NN 的值。

?0?
1000000000000000000
5

数据范围

  • SS 是由 0、1、? 组成的字符串。
  • SS 的长度在 116060 之间(含端点)。
  • 1N10181 \le N \le 10^{18}
  • NN 是整数。
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
2928
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签