Está en la página 1de 2

Harrichu y el laberinto

Harrichu, nieto del famoso arquologo Indiana Jones, es ya un hombre mayor. Siente que hoy e en d a su edad, no tiene sentido pasarse el d entero recorriendo laberintos arriba y abajo, a, a y ms teniendo un sof de piel tan cmodo como el que tiene en un su despacho y una botella a a o de chivas a medio terminar. Despus de consultarlo con su amigo Jorge Minish, reputado experto en informtica, ha e a decidido que el prximo laberinto lo recorrer un becario, mientras Harrichu le ir diciendo por o a a SMS que camino debe seguir. Para guiar a su ayudante, nuestro no-tan-intrpido arquelogo e o cuenta con un plano del laberinto. De hecho le dice Jorge mientras comentan la idea en el lujoso despacho de Harrichu ni siquiera es necesario que te molestes a guiar al becario. Es muy sencillo hacer un programa que resuelva el laberinto. De veras? responde Harrichu pensativo. Por una lado le da pereza escribir tantos SMS, pero por otro lado le preocupa pensar lo fcil que puede resultar ser substitu por una a do mquina Mmmmm. En realidad, no necesito algo tan complejo como lo que propones... a Pero, la verdad, me ser util un programa que me dijera de antemano si un laberinto tiene a o no solucin, as slo gastar mi valioso tiempo en aquellos laberintos provechosos. o o a Puedes ayudar a Harrichu escribiendo tal programa? Entrada La entrada consiste en una l nea con un nmero n de laberintos, entre 1 y 100, seguida de u los n laberintos. Un laberinto viene dado por dos nmeros f y c en una l u nea, separados por un espacio, que indican el nmero de las y de columnas que tiene el laberinto. Se u cumple 4 f, c 30. A continuacin vienen f l o neas de exactamente c caracteres cada una, describiendo las f las del laberinto. En la descripcin de un laberinto (ved los ejemplos de entrada propuestos), un carcter . o a indica una casilla del laberinto por la que el becario puede pasar, mientras que un carcter a # o una letra mayscula indica una pared o una trampa, recuadros por los que el becario no u puede pasar. En cada laberinto aparece una unica vez el carcter b (indicando la posicin a o inicial del becario) y el carcter g (la posicin a la que debe llegar el becario). Se te garantiza a o que los extremos del laberinto (o sea, las casillas que pertenecen a la primera o ultima la o columna) estn cubiertos por carcteres #. a a El becario puede moverse por el laberinto mediante pasos horizontales o verticales, pero no diagonales. Vuestro programa deber resolver una entrada como la propuesta en 1 segundo de tiempo. a Salida La salida consiste en n l neas. Para cada laberinto, debes escribir Good si es resoluble (es decir, si el becario puede llegar de b a g mediante pasos horizontales o verticales avanzando unicamente por casillas .) y Bad si no lo es.

Ejemplo de entrada
3 6 4 #### #g.# #H.# #..# #b## #### 9 8 ######## #.g#..## #.#....# #...Y#.# ####...# ##....## #...b..# ##....## ######## 7 7 ####### ##S...# #...#.# #.bQB.# ####.## #.g..M# #######

Ejemplo de salida
Good Good Bad

También podría gustarte