AT_arc161_b [ARC161B] Exactly Three Bits
Description
[problemUrl]: https://atcoder.jp/contests/arc161/tasks/arc161_b
正整数 $ X $ に対し,「 $ X $ を $ 2 $ 進法表記したときに現れる $ 1 $ の個数」を $ f(X) $ とします. たとえば,$ 6\ =\ 110_{(2)},\ 11\ =\ 1011_{(2)},\ 16\ =\ 10000_{(2)} $ なので,$ f(6)\ =\ 2,\ f(11)\ =\ 3,\ f(16)\ =\ 1 $ です.
正整数 $ N $ が与えられます. $ N $ 以下の正整数 $ X $ であって,$ f(X)\ =\ 3 $ を満たすものが存在するかどうかを判定し,存在するならその最大値を求めてください.
$ T $ 個のテストケースが与えられるので,それぞれについて答えてください.
Input Format
入力は以下の形式で標準入力から与えられる. $ N_i $ は $ i $ 番目のテストケースにおける $ N $ の値を表す.
> $ T $ $ N_1 $ $ N_2 $ $ \vdots $ $ N_T $
Output Format
$ T $ 行出力せよ. $ i $ 行目には,$ N_i $ 以下の正整数 $ X $ であって,$ f(X)\ =\ 3 $ を満たすものの最大値を出力せよ. ただし,そのような正整数 $ X $ が存在しない場合には `-1` を出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ T\ \leq\ 10^5 $
- $ 1\ \leq\ N\ \leq\ 10^{18} $
### Sample Explanation 1
\- $ 1 $ つ目のテストケースについて,$ f(14)\ =\ 3,\ f(15)\ =\ 4,\ f(16)\ =\ 1 $ なので,$ X\ \leq\ 16 $ かつ $ f(X)\ =\ 3 $ を満たす最大の正整数 $ X $ は $ 14 $ です. - $ 2 $ つ目のテストケースについて,$ f(161)\ =\ 3 $ なので,$ X\ \leq\ 161 $ かつ $ f(X)\ =\ 3 $ を満たす最大の正整数 $ X $ は $ 161 $ です. - $ 3 $ つ目のテストケースについて,$ f(1)\ =\ 1,\ f(2)\ =\ 1,\ f(3)\ =\ 2,\ f(4)\ =\ 1 $ なので,$ X\ \leq\ 4 $ かつ $ f(X)\ =\ 3 $ を満たす正整数 $ X $ は存在しません. - $ 4 $ つ目のテストケースのように,入出力値が 32bit 整数型に収まらないこともあります.