#1487. [ABC235D] Multiply and Rotate

[ABC235D] Multiply and Rotate

题目描述

我们有一个正整数 aa 。此外,还有一块黑板,上面写着一个以 1010 为底数的数字。 假设 xx 是黑板上的数字。高桥可以进行下面的运算来改变这个数字。

  • 擦除 xx ,写入以 1010 为底数的 xx 乘以 aa
  • xx 看成一个字符串,并将最右边的数字移到开头。 只有当 x10x \geq 10xx 不能被 1010 整除时,才能进行此操作。

例如,当 a=2,x=123a = 2, x = 123 时,高桥可以进行以下操作之一。

  • 删除 xx ,写入 x×a=123×2=246x \times a = 123 \times 2 = 246
  • xx 看作一个字符串,并将 123 最右边的数字 3 移到开头,将数字从 123123 改为 312312

黑板上的数字最初是 11 。将黑板上的数字改为 nn 所需的最少运算次数是多少?如果无法将数字改为 nn ,请打印 1-1

输入格式

第一行输入两个正整数 a,na, n

输出格式

输出最少操作次数或 -1

3 72
4
2 5
-1
2 611
12
2 767090
111

提示

  • 2  a < 106 2\ \leq\ a\ \lt\ 10^6
  • 2  n < 106 2\ \leq\ n\ \lt\ 10^6
  • 入力はすべて整数である。

Sample Explanation 1

我们可以通过以下四次操作,将黑板上的数字从 11 改为 7272

  • 进行第一种操作: 131 \to 3 .
  • 进行第一种类型的操作: 393 \to 9 .
  • 执行第一种类型的操作: 9279 \to 27 .
  • 执行第二种类型的操作: 277227 \to 72 .

不可能通过三次或更少的运算得出 7272 ,因此答案为 44

Sample Explanation 2

不可能将黑板上的数字改为 55

Sample Explanation 3

有一种方法可以在 1212 次运算中将黑板上的数字改为 611611 : $1 \to 2 \to 4 \to 8 \to 16 \to 32 \to 64 \to 46 \to 92 \to 29 \to 58 \to 116 \to 611$ ,这是可能的最小值。