Este es un rompecabezas común que muchos de ustedes han resuelto manualmente. Ahora es el momento de escribir un algoritmo para resolver el mismo.
Hay palos de igual número alineados en dos lados diferentes uno frente al otro en dirección. Hay un solo espacio vacío entre ellos. Diga algo como la siguiente figura (si el número total de palos de coincidencia es 4).
Cada palo puede deslizarse un paso hacia adelante (si el espacio frontal inmediato es libre), o puede saltarse sobre un palo en su frente y aterrizar en el espacio libre (si ese espacio es libre). El movimiento en dirección inversa no es posible (incluso el espacio es libre). No se permite el salto inverso también. Solo se permite un movimiento en un solo paso.
Ahora, tiene que escribir un algoritmo para encontrar los pasos mínimos requeridos con los cuales todos los palos de coincidencia del lado izquierdo caerán en el lado derecho y todos los palos de partido del lado derecho caerán en el lado izquierdo.
Por ejemplo: si hay un total de 2 palos (1 en cada lado), los pasos serán:
Nota: En la figura anterior, la palanca lateral izquierda se movió primero. Existe otra solución cuando el palo del lado derecho se mueve primero. Pero para este problema, debe dar solo una solución y eso también supone que el joystick izquierdo se mueva primero.
La siguiente figura describe los movimientos con 4 palos (2 en cada lado):
Nota: En la figura anterior, la palanca lateral izquierda se movió primero. Existe otra solución cuando el palo del lado derecho se mueve primero. Pero para este problema, debe dar solo una solución y eso también supone que el joystick izquierdo se mueva primero.
[Suposición: La entrada puede ser cualquier número par entre 02 y 14 (es decir, 1 a 7 palos coincidentes en cada lado). Para las entradas fuera de este rango, no necesita hacer ninguna validación, ni tampoco debe proporcionar ningún mensaje de error. Nota: en la salida, cada paso está separado por un '|' (pipa) personaje. Los programadores de COBOL siempre deben asumir PIC 9 (2) como tamaño de entrada y también pueden suponer que la salida tiene una longitud máxima fija de 450 caracteres, rellena con espacios a la derecha.]
Entrada de muestra:
02
Salida de muestra:
01To02|03To01|02To03|
Entrada de muestra:
04
Salida de muestra:
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
Entrada de muestra:
06
Salida de muestra:
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|