005 - 9つの数字
時間制限 1 秒 / メモリ制限 256 MB / 得点 6 / x 1 /
問題
PCK君の家の入口には特殊な電子錠がついている。この電子錠には1から9までの数字が、右の図のように縦3行、横3列に配置されている。この電子錠には数字を指し示すカーソルが1つあり、カーソルによって常にどれか1つの数字が指し示されている。
電子錠を開錠するために、所定の数字列が暗証番号として設定されている。暗証番号に含まれる数字を左から順番に入力していくことで開錠することができる。入力するときには、以下のどちらも1回の操作と考える。
- 隣接する上下左右のどれかの数字へカーソルを移動する。
- カーソルが指し示す数字を入力する。
暗証番号の入力開始時には、図のように矢印で表されるカーソルが右下の数字を指している。1から9までの数字は、操作開始前に自由に並べ替えることができる。PCK君は、数字を並べ替えることによって、暗証番号を入力するために必要な操作回数がどれだけ少なくできるかを知りたい。
暗証番号が与えられたとき、暗証番号を入力するために必要な操作回数の最小値を求めるプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
$N$
1行に暗証番号を表す整数$N$ ($1 \leq N < 10^{10^5}$)が与えられる。ただし、$N$の各桁に0は含まれない。
出力
操作回数の最小値を出力する。
入出力例
入力例1
123456789
出力例1
17
入力例2
325821642813
出力例2
26
たとえば、以下のように数字を並べ替えれば、26回の操作で暗証番号を入力できる。