atcoder#ABC235D. [ABC235D] Multiply and Rotate

[ABC235D] Multiply and Rotate

配点 : 400400

問題文

正の整数 aa があります。また、黒板に 11 個の数が 1010 進表記で書かれています。 黒板に現在書かれている数を xx としたとき、高橋君は次のいずれかの操作を行い、黒板に書かれている数を変化させることができます。

  • xx を消し、 xxaa 倍した数を 1010 進表記で新たに書きこむ。
  • xx を文字列とみなして、列の末尾の数字を文字列の先頭に移動させる。 ただし、この操作は x10x \geq 10 かつ xx1010 で割り切れないときにしか行えない。

たとえば 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 を出力してください。

制約

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

入力

入力は以下の形式で標準入力から与えられる。

aa NN

出力

答えを出力せよ。

3 72
4

以下に説明する操作を行うことで、 黒板に書かれている数を 44 回で 11 から 7272 に変化させることができます。

  • 11 つ目の操作を行う。黒板に書かれている数は 131 \to 3 に変わる。
  • 11 つ目の操作を行う。黒板に書かれている数は 393 \to 9 に変わる。
  • 11 つ目の操作を行う。黒板に書かれている数は 9279 \to 27 に変わる。
  • 22 つ目の操作を行う。黒板に書かれている数は 277227 \to 72 に変わる。

33 回以下の操作で 7272 に変化させることはできないため、答えは 44 になります。

2 5
-1

どのように操作しても黒板に書かれている数を 55 に変化させることはできません。

2 611
12

適切に操作を選ぶことで、 $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$ と 1212 回の操作で黒板に書かれている数を 611611 に変化させることができ、これが最小です。

2 767090
111