Ha sido un día largo para Matt. Después de trabajar un buen rato en Edabit, decidió salir a tomar una cerveza al bar local, a unos pocos kilómetros por la carretera. Sin embargo, Matt no se dio cuenta de que, después de beber demasiado, ya no puede encontrar correctamente el camino a casa. Tu objetivo es ayudar a Matt a volver a casa diciéndole cuánto mide el camino hasta su casa si conduce por la ruta óptima.
Matt vive en un mundo sencillo: solo hay tierra (representada por un punto), una única casa (la casa de Matt, representada por la letra "h") y árboles (representados por la letra "t") que, obviamente, no puede atravesar conduciendo. Matt tiene una cantidad ilimitada de movimientos y en cada movimiento puede ir al norte, noreste, este, sureste, sur, suroeste, oeste y noroeste. Solo habrá un Matt y una casa, que será la de Matt.
El mundo se te proporciona como una cadena delimitada por comas que representa las celdas del mundo desde la esquina superior izquierda hasta la inferior derecha. Un mundo de 3x3 con Matt en la esquina superior izquierda y su casa en la esquina inferior derecha, con un árbol en el centro, se representaría así:
m,.,.,.,t,.,.,.,hLa respuesta para este mundo sería 3: Matt se movería primero hacia el este, luego hacia el sureste y después hacia el sur (o sur > sureste > este). La llamada de función relacionada con este ejemplo sería la siguiente:
get_path_length("m,.,.,.,t,.,.,.,h", 3, 3)Si Matt no puede llegar a casa desde su ubicación actual, devuelve -1; de lo contrario, devuelve la cantidad de movimientos que Matt debe hacer para llegar a casa siguiendo la ruta óptima. Se te proporcionan el mundo, su ancho y su alto.
¡Buena suerte!