#P8918. 『MdOI R5』Jump

    ID: 7310 Type: RemoteJudge 1000ms 512MiB Tried: 1 Accepted: 1 Difficulty: 2 Uploaded By: Tags>数学洛谷原创O2优化位运算洛谷月赛

『MdOI R5』Jump

题目描述

数轴上有一个人,设他所在的位置为 xx,初始时 x=0x=0。第 ii 秒中他可以选择往左或往右跳 2i12^{i-1} 单位长度,即将 xx 增大或减小 2i12^{i-1}。问他至少需要多少秒才能到达 nn,即在某一秒结束的时刻使得 x=nx=n。如果永远都不可能到达 nn,那么输出 1-1

本题每个测试点中有多组数据。

输入格式

第一行,一个整数,表示数据组数 TT

接下来 TT 行,每行一个整数,表示一组测试数据中的 nn

输出格式

TT 行,每行一个数,依次表示每组数据的答案。

10
1
2
7
8
9
10
11
935
101
2023
1
-1
3
-1
4
-1
4
10
7
11

提示

对于 100%100\% 的数据,1T1031\le T\le 10^31n1091\le n\le 10^9

Subtask1(30%)\operatorname{Subtask} 1(30\%)n100n\le 100

Subtask2(40%)\operatorname{Subtask} 2(40\%)n=2kn=2^k,其中 kk 是一个非负整数。

Subtask3(30%)\operatorname{Subtask} 3(30\%):无特殊限制。

样例说明 1

n=1n=1 时只需要在第一秒中往右跳即可。

n=2n=2 时可以证明永远都不可能到达 nn