题目描述
你有一个奇怪的计数器,计数器上有一个数字x,每次你可以做如下操作:
- 选择一个x=bkbk−1⋯b1b0(10)中的一个数位bi。
- 将x变为x+bi或者x−bi。
例如,当x=(616)10时,你可以选择b=1,然后让x变为x−b=(615)10。
你想要通过最少步数把x变成y,问最少步数是多少。
输入描述
第一行一个整数T,代表数据组数。
每组数据包含一行两个整数x′,y′,令上一组数据答案为lastans,初始时lastans=0,则该组数据为x=x′⊕(lastans+1),y=y′⊕(lastans+1)。
输出描述
对于每组询问,输出一个数字代表答案。如果无法从x变到y,则输出−1。
样例
样例输入1
3
2 6
12 0
4 7
样例输出1
-1
3
-1
样例解释1
x=3,y=7,无解。
x=12,y=0,最优操作方案为12→10→9→0。
x=0,y=3,无解。
其他样例
见下发文件
数据范围
对于10%的数据,T≤10,0≤x,y≤10。
对于另外20%的数据,0≤x,y≤2×103。
对于另外30%的数据,0≤x,y≤1×104。
对于另外20%的数据,0≤x,y≤3×104。
对于100%的数据,0≤T,x,y≤1×105。