#568. D.counter

D.counter

题目描述

你有一个奇怪的计数器,计数器上有一个数字xx,每次你可以做如下操作:

  1. 选择一个x=bkbk1b1b0(10)x=\overline {b_kb_{k-1}\cdots b_1b_0}_{(10)}中的一个数位bib_i
  2. xx变为x+bix+b_i或者xbix-b_i

例如,当x=(616)10x=(616)_{10}时,你可以选择b=1b=1,然后让xx变为xb=(615)10x-b=(615)_{10}

你想要通过最少步数把xx变成yy,问最少步数是多少。

输入描述

第一行一个整数TT,代表数据组数。

每组数据包含一行两个整数x,yx',y',令上一组数据答案为lastanslastans,初始时lastans=0lastans=0,则该组数据为x=x(lastans+1),y=y(lastans+1)x=x'\oplus (lastans + 1),y=y'\oplus (lastans + 1)

输出描述

对于每组询问,输出一个数字代表答案。如果无法从xx变到yy,则输出1-1

样例

样例输入1

3
2 6
12 0
4 7

样例输出1

-1
3
-1

样例解释1

x=3,y=7x=3,y=7,无解。

x=12,y=0x=12,y=0,最优操作方案为12109012 \to 10 \to 9 \to 0

x=0,y=3x=0,y=3,无解。

其他样例

见下发文件

数据范围

对于10%10\%的数据,T10,0x,y10T \le 10, 0 \le x, y \le 10

对于另外20%20\%的数据,0x,y2×1030 \le x,y \le 2 \times 10^3

对于另外30%30\%的数据,0x,y1×1040 \le x,y \le 1 \times 10^4

对于另外20%20\%的数据,0x,y3×1040 \le x,y \le 3 \times 10^4

对于100%100\%的数据,0T,x,y1×1050 \le T, x,y \le 1 \times 10^5