atcoder#ABC301D. [ABC301D] Bitmask
[ABC301D] 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
、?
的字符串 。
将 视为一个二进制数,令 为将 中的 ?
替换为 0
或 1
后所能得到的数字集合。请求出 中小于等于 的最大数字,并以十进制方式输出。
如果 中不包含小于等于 的数字,输出 -1
。
Translate by
/user/752485
?0?
2
1
101
4
-1
?0?
1000000000000000000
5
提示
制約
- は
0
,1
,?
からなる文字列 - の長さは 以上 以下
- は整数
Sample Explanation 1
問題文中で例示したとおり、 です。 に含まれる 以下の値は と なので、そのうちの最大である を出力します。
Sample Explanation 2
であるため、 以下の値は に含まれません。