#P1132. 数字生成游戏

数字生成游戏

题目描述

小明完成了这样一个数字生成游戏,对于一个不包含 00 的数字 ss 来说,有以下 33 种生成新的数的规则:

  1. ss 的任意两位对换生成新的数字,例如 143143 可以生成 314,413,134314,413,134

  2. ss 的任意一位删除生成新的数字,例如 143143 可以生成 14,13,4314,13,43

  3. ss 的相邻两位之间 si,si+1s_i,s_{i + 1} 之间插入一个数字 xxxx 需要满足 si<x<si+1s_i<x<s_{i + 1}。例如 143143 可以生成 1243,13431243,1343,但是不能生成 1143,15431143,1543 等。

现在小明想知道,在这个生成法则下,从 ss 开始,每次生成一个数,可以用然后用新生成的数生成另外一个数,不断生成直到生成 tt 至少需要多少次生成操作。

另外,小明给规则 33 又加了一个限制,即生成数的位数不能超过初始数 ss 的位数。若 ss143143,那么 1243124313431343 都是无法生成的;若 ss14431443,那么可以将 ss 删除变为 143143,再生成 1243124313431343

输入格式

第一行包含 11 个正整数,为初始数字 ss

第二行包含一个正整数 mm,为询问个数。

接下来 mm 行,每行一个整数 tttt 不包含 00),表示询问从 ss 开始不断生成数字到 tt 最少要进行多少次操作。任两个询问独立,即上一个询问生成过的数到下一个询问都不存在,只剩下初始数字 ss

输出格式

mm 行,每行一个正整数,对每个询问输出最少操作数,如果无论如果无论也变换不成,则输出 1-1

143
3
134
133
32

1
-1
4

提示

样例解释

143134143\to 134

133133 无法得到

143131232332143\to13\to123\to23\to32

数据范围

对于 20%20\% 的数据,s<100s < 100
对于 40%40\% 的数据,s<1000s < 1000
对于 40%40\% 的数据,m<10m < 10
对于 60%60\% 的数据,s<10000s < 10000
对于 100%100\% 的数据,s<100000,m50000s < 100000,m ≤ 50000