問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
N 桁のダイヤルロックがあります。
最初ダイヤルロックの数字は D です。
左から i 桁目のダイヤルロックの数字を D_i と表します。
あなたは以下の 4 種類の操作を好きな回数行うことができます。
・操作 1:2 ≦ i ≦ N を満たす整数 i を 1 つ選ぶ。その後 D_{i-1} を (D_{i-1} + 1) mod 10 に、D_i を (D_i + 1) mod 10 に置き換える。
・操作 2:2 ≦ i ≦ N を満たす整数 i を 1 つ選ぶ。その後 D_{i-1} を (D_{i-1} - 1) mod 10 に、D_i を (D_i - 1) mod 10 に置き換える。
・操作 3:D_1 を (D_1 + 1) mod 10 に置き換える。
・操作 4:D_1 を (D_1 - 1) mod 10 に置き換える。
ここで、x mod y は x を y で割った余りを表します。
ダイヤルロックを解除するには、ダイヤルロックの数字を T にする必要があります。
ダイヤルロックを解除するために必要な操作回数の最小値を求めてください。
ただし、与えられる入力は有限回の操作で D を T にできることが保証されます。
入力例 1 では、以下のように操作できます。
・i = 2 として操作 1 を行う。操作後、ダイヤルロックは 95068 になる。
・i = 4 として操作 2 を行う。操作後、ダイヤルロックは 95958 になる。
・操作 3 を行う。操作後、ダイヤルロックは 05958 になる。
すべての操作を終えた後、ダイヤルロックの数字は 05958 であるため、操作回数 3 回でダイヤルロックを解除することができました。
操作回数 2 回以下でダイヤルロックを解除することはできないので、3 を出力します。
入力は以下のフォーマットで与えられます。
N
D
T
ダイヤルロックを解除するために必要な操作回数の最小値を求めてください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 10^5
・D, T は 0~9 の数字からなる長さ N の文字列
・有限回の操作で D を T にすることが可能である
5
84068
05958
3
10
7627961162
8595972239
10