AT_arc161_b [ARC161B] Exactly Three Bits

题目描述

对于一个正整数 $X$,定义 $f(X)$ 为 $X$ 在二进制表示下 $1$ 的个数,比如,因为 $6=110_{(2)}$,$11=1101_{(2)}$,$16=10000_{(2)}$,所以 $f(6)=2$,$f(11)=3$,$f(16)=1$。 现在给定你一个正整数 $N$,问是否存在一个小于等于 $N$ 的正整数 $X$,满足 $f(X)=3$。如果存在,请输出满足条件的最大的 $X$,否则输出 `-1`。 本题有多组数据。

输入格式

第一行一个整数 $T(1\le T\le10^5)$,表示数据组数。 接下来 $T$ 行每行一个正整数 $N(1\le N\le10^{18})$。

输出格式

共 $T$ 行,每行一个整数表示第 $i$ 个问题的答案。

说明/提示

### 制約 - $ 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 整数型に収まらないこともあります.