atcoder#ARC161B. [ARC161B] Exactly Three Bits
[ARC161B] Exactly Three Bits
配点 : 点
問題文
正整数 に対し,「 を 進法表記したときに現れる の個数」を とします. たとえば,$6 = 110_{(2)}, \ 11 = 1011_{(2)}, \ 16 = 10000_{(2)}$ なので, です.
正整数 が与えられます. 以下の正整数 であって, を満たすものが存在するかどうかを判定し,存在するならその最大値を求めてください.
個のテストケースが与えられるので,それぞれについて答えてください.
制約
入力
入力は以下の形式で標準入力から与えられる. は 番目のテストケースにおける の値を表す.
出力
行出力せよ.
行目には, 以下の正整数 であって, を満たすものの最大値を出力せよ.
ただし,そのような正整数 が存在しない場合には -1
を出力せよ.
4
16
161
4
1000000000000000000
14
161
-1
936748722493063168
- つ目のテストケースについて, なので, かつ を満たす最大の正整数 は です.
- つ目のテストケースについて, なので, かつ を満たす最大の正整数 は です.
- つ目のテストケースについて, なので, かつ を満たす正整数 は存在しません.
- つ目のテストケースのように,入出力値が 32bit 整数型に収まらないこともあります.