#arc161b. [arc161_b]Exactly Three Bits

[arc161_b]Exactly Three Bits

问题描述

对于一个正整数 XX,设 f(X)f(X) 表示 XX 的二进制表示中出现的 11 的个数。例如,6=110(2)6 = 110_{(2)}11=1011(2)11 = 1011_{(2)}16=10000(2)16 = 10000_{(2)},因此 f(6)=2f(6) = 2f(11)=3f(11) = 3f(16)=1f(16) = 1

给定一个正整数 NN,确定是否存在一个小于或等于 NN 的正整数 XX,使得 f(X)=3f(X) = 3。如果存在,找出最大的满足条件的 XX

TT 组测试用例需要解决。

约束条件

  • 1T1051 \leq T \leq 10^5
  • 1N10181 \leq N \leq 10^{18}

输入

输入以以下格式从标准输入给出,其中 NiN_i 表示第 ii 组测试用例的 NN 的值:

TT

N1N_1

N2N_2

\vdots

NTN_T

输出

输出 TT 行。第 ii 行应输出小于或等于 NiN_i 的最大正整数 XX,使得 f(X)=3f(X) = 3。如果不存在这样的正整数 XX,则输出 -1

示例输入 1

4
16
161
4
1000000000000000000

示例输出 1

14
161
-1
936748722493063168
  • 对于第一组测试用例,f(14)=3f(14) = 3f(15)=4f(15) = 4f(16)=1f(16) = 1,因此满足条件 X16X \leq 16f(X)=3f(X) = 3 的最大正整数 XX1414
  • 对于第二组测试用例,f(161)=3f(161) = 3,因此满足条件 X161X \leq 161f(X)=3f(X) = 3 的最大正整数 XX161161
  • 对于第三组测试用例,f(1)=1f(1) = 1f(2)=1f(2) = 1f(3)=2f(3) = 2f(4)=1f(4) = 1,因此不存在满足条件 X4X \leq 4f(X)=3f(X) = 3 的正整数 XX
  • 正如第四组测试用例所示,输入和输出的值可能不适合32位整数类型。