Escape del laberinto

Anuncio
Escape del laberinto
Escribir un programa que diga el número de caminos diferentes que permiten escapar de un
laberinto dado. La casilla inicial siempre es la de la esquina inferior derecha. La casilla de
salida siempre es la de la esquina superior izquierda. Todos los movimientos deben ser hacia
arriba o hacia la izquierda. Hay casillas marcadas por las que no se puede pasar. La casilla
inicial y la de salida nunca estarán marcadas. Siempre habrá por lo menos un camino desde
la entrada hasta la salida. Si el número de caminos fuese mayor o igual que 106 , el programa
debe escribir “demasiados caminos”.
Entrada
La entrada es una secuencia de como mucho 1000 casos de pruebas separados por una lı́nea en
blanco. Cada caso de pruebas consiste en una lı́nea con n y m (respectivamente, el número de
filas y el número de columnas), seguida de n lı́neas (una por fila) con m caracteres cada una
(X o un punto). Una X indica una casilla marcada (prohibida). Un punto indica una casilla
por la que se puede pasar. Un caso de pruebas especial consistente en una lı́nea con dos ceros
marca el final de la entrada. Se cumple 2 ≤ n ≤ 40 y 2 ≤ m ≤ 40.
Salida
Para cada caso de pruebas, hay que escribir el número de caminos diferentes que van desde la
esquina inferior derecha hasta la esquina superior izquierda, con todos los movimientos hacia
arriba o hacia la izquierda. Si ese número fuese mayor o igual que 106 , en su lugar hay que
escribir “demasiados caminos”.
Tened en cuenta que el número de caminos puede sobrepasar el tamaño máximo del tipo
entero de vuestro lenguaje de programación!
Ejemplo de entrada
Ejemplo de salida
2 2
..
..
2
6
4
1
demasiados caminos
1
1
3 3
...
...
...
3 8
.......X
.X.X.X..
X.......
4 10
.X......XX
....X.....
.XX...XX..
..XXX.....
7 38
......................................
......................................
......................................
......................................
......................................
......................................
......................................
7 40
........................................
......................................X.
......................................X.
......................................X.
......................................X.
......................................X.
......................................X.
7 40
.X......................................
.X......................................
.X......................................
.X......................................
.X......................................
.X......................................
........................................
0 0
Descargar