Problema 3
El Salto del Caballo
caballo.pas, caballo.c, caballo.cpp

Se dispone de una superficie rectangular “cuadriculada”, es decir, formada por un entramado de posiciones o casillas (como ocurre, por ejemplo, con un tablero de ajedrez). Nos interesa buscar caminos dentro de esta superficie que cumplan ciertas condiciones, teniendo en cuenta que algunas de las casillas no pueden formar parte de dichos caminos (para entendernos, representan obstáculos en la superficie).

Problema
Dada una superficie rectangular de dimensión n×m, realizar un programa que la recorra partiendo de una casilla inicial y llegando a una casilla final según las reglas siguientes:

El programa deberá calcular la secuencia de casillas visitadas desde la inicial hasta la final. En caso que no exista ninguna solución, el programa debe detectar esta situación e informar.

Entrada
La entrada del programa consiste en una secuencia de líneas, que tendrá el siguiente formato:

A efectos de numeración, debe considerarse que las filas van de 1 a m y las columnas de 1 a n.

Salida
La salida del programa contendrá una línea por cada posición que forme parte del camino encontrado como solución que cumpla las condiciones dadas en el enunciado. Cada posición es un par de enteros: la columna y la fila. La primera posición de la solución será la posición inicial, y la última la posición final.
Si no hay ninguna solución, la salida contendrá una única línea con el texto “INSATISFACTIBLE”. Si existe más de una solución, cualquiera de ellas se considera válida.

Ejemplo

entrada salida
3 3
1 1 2 1
V V V
V N N
N V V
1 1
2 3
3 1
1 2
3 3
2 1

 


Concurso: ICPC - 2 Concurso Interno de la Universidad Bonaterra. 17/Mayo/2002
Propuesto por: Óscar Dávalos Orozco
Ayuda: entradas, salidas, sugerencias
Soluciones: caballo.pas, caballo.c, caballo.cpp


World of πer