110802 Problema del puzzle de 15 piezas

Transcripción

110802 Problema del puzzle de 15 piezas
Skiena y Revilla, Concursos Internacionales de Informática y Programación
Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1
110802
Problema del puzzle de 15 piezas
El puzzle de 15 piezas es un juego muy popular, que seguramente cualquier persona conoce aunque
no sea por ese nombre. Está construido con 15 piezas deslizantes, numeradas del 1 al 15, e integradas
en un cuadro de dimensiones 4 × 4 en el que hay un espacio libre. El objetivo del juego es el de ordenar
las piezas de la forma que se muestra a continuación:
El único movimiento válido para jugar consiste en sustituir el espacio vacı́o por una de las 2, 3 o
4 piezas con las que comparte uno de sus lados. Consideremos la siguiente secuencia de movimientos:
Una posición aleatoria El hueco queda ahora a la El hueco queda ahora El hueco queda ahora a la
derecha (R).
arriba (U).
izquierda (L).
del juego.
Identificamos los movimientos en función de la pieza con la que se intercambia el espacio vacı́o.
Los valores válidos son “R,” “L,” “U,” y “D” para indicar derecha, izquierda, arriba y abajo, en función
de los desplazamientos del hueco.
Partiendo de una configuración original de un puzzle de 15 piezas, debemos determinar una secuencia de pasos que lleve al estado final. Para los casos de entrada en los que esto es posible, se
dispone de una solución que requiere un máximo de 45 movimientos. No obstante, se permiten hasta
50 movimientos para resolverlo.
Entrada
La primera lı́nea de la entrada consta de un entero n, que indica el número de puzzles que se deben
resolver. Las siguientes 4n lı́neas contienen n puzzles, ocupando cuatro lı́neas cada uno. El número 0
indica la posición de la pieza vacı́a.
Salida
Por cada caso de la entrada, se produce una lı́nea en la salida. Si la configuración inicial no es
resoluble, se debe imprimir el mensaje “This puzzle is not solvable.”. Si la solución existe, se
http://www.programming-challenges.com
c
copyright 2006
Skiena y Revilla, Concursos Internacionales de Informática y Programación
Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1
debe imprimir una secuencia de movimientos, genrada por el método descrito anteriormente, que
resuelva el puzzle.
Ejemplo de entrada
2
2 3 4 0
1 5 7 8
9 6 10 12
13 14 11 15
13 1 2 4
5 0 3 7
9 6 10 12
15 8 11 14
Ejemplo de salida
LLLDRDRDR
This puzzle is not solvable.
http://www.programming-challenges.com
c
copyright 2006