Let's play a puzzle using eight cubes placed
on a <!-- MATH
$3 \times 3$
-->
3 x 3 board leaving one empty square.
Faces of cubes are painted with three colors. As a puzzle step, you
can roll one of the cubes to the adjacent empty square. Your goal is
to make the specified color pattern visible from above by a number of
such steps.
The rules of this puzzle are as follows.
Your task is to write a program that finds the minimum number of steps required to make the specified color pattern from the given initial state.
The input is a sequence of datasets. The end of the input is
indicated by a line containing two zeros separated by a space. The
number of datasets is less than 16. Each dataset is formatted as
follows.
<!-- MATH
$\begin{array}{lll}
x & y \
F_{11} & F_{21} & F_{31} \
F_{12} & F_{22} & F_{32} \
F_{13} & F_{23} & F_{33} \
\end{array}$
-->
x y
F11 F21 F31 F12 F22 F32
F13 F23 F33
The first line contains two integers x and y separated by a space,
indicating the position (x, y) of the initially empty square.
The values of x and y are 1, 2, or 3.
The following three lines specify the color pattern to make. Each
line contains three characters <!-- MATH
$F_{1j}, F_{2j},$
-->
F1j, F2j, and F3j,
separated by a space. Character Fij indicates the top color of
the cube, if any, at position (i, j) as follows:
For each dataset, output the minimum number of steps to achieve the
goal, when the goal can be reached within 30 steps.
Otherwise, output ``-1'' for the dataset.
1 2 W W W E W W W W W 2 1 R B W R W W E W W 3 3 W B W B R E R B R 3 3 B W R B W R B E R 2 1 B B B B R B B R E 1 1 R R R W W W R R E 2 1 R R R B W B R R E 3 2 R R R W E W R R R 0 0
0 3 13 23 29 30 -1 -1
Migrated from old NTUJ.
ICPC 2006 Yokohama
No. | Testdata Range | Score |
---|