问题 5021 --牛娃和古代计算机

5021: 牛娃和古代计算机

时间限制: 1 Sec  内存限制: 128 MB
提交: 30  解决: 22
[提交][状态][命题人:]

题目描述

    牛娃最近发现了一台破旧的电脑。这台电脑只有一个寄存器,所以只能在其中输入一个整数值。然后在一次操作中,最多可以将其按位向左或向右移动三个位置(即对应二进制的左移或右移操作)。如果右移导致二进制的1被舍弃,则禁止右移。所以,事实上,在一次运算中,你可以将你的数字乘以或除以2,4或8,并且只有当这个数字可以被所选的除数整除时,才允许除法。 

    在形式上,如果寄存器包含正整数x,则在一次操作中,它可以替换为以下之一:

    1、x*2

    2x*4

    3、x*8

    4、x/2,如果x可以被2整除

    5、x/4,如果x可以被4整除

    6、x/8,如果x可以被8整除 

    例如,如果x=6,在一次操作中,它可以被12、24、48或3所取代。值6不能被4或8整除,所以只有四种替换形式。 

    现在牛娃想知道,如果他把a放入寄存器并想在最后得到b,他需要执行最少多少步操作。

输入

     输入由多个测试用例组成。第一行包含一个整数t(1≤t≤1000)——测试用例的数量。以下t行包含对测试用例的描述。

     每个测试用例只有一行,包含两个整数a和b(1≤a、 b≤1018)——变量的初始值和目标值。

输出

输出t行,每行应包含一个整数,表示牛娃需要执行的最小操作数。如果牛娃最后不能使a变为b,则输出−1。

样例输入
Copy
10
10 5
11 44
17 21
1 1
96 3
2 128
1001 1100611139403776
1000000000000000000 1000000000000000000
7 1
10 8
样例输出
Copy
1
1
-1
0
2
2
14
0
-1
-1

提示

来源

 

[提交][状态]