Escape del laberinto P88921


Statement
 

pdf   zip

thehtml

Haced un programa que calcule el número de caminos diferentes que permiten escapar de un laberinto dado, yendo desde la casilla inferior derecha hasta la casilla superior izquierda. Todos los movimientos deben ser hacia arriba o hacia la izquierda. Hay casillas prohibidas por las que no se puede pasar. Siempre hay por lo menos un camino desde la entrada hasta la salida.

Entrada

La entrada consiste en diversos casos de prueba. Cada caso comienza con el número de filas n y el número de columnas m, seguidos de n líneas con m caracteres cada una. Una ‘X’ indica una casilla prohibida, y un punto indica una casilla permitida. Un caso especial con n = m = 0 marca el final de la entrada. Podéis asumir 2 ≤ n ≤ 40 y 2 ≤ m ≤ 40.

Salida

Para cada caso, escribid el número de caminos diferentes que van desde la esquina inferior derecha hasta la esquina superior izquierda, y 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 “!!!”.

Pista

El hecho que alguna casilla tenga demasiados caminos desde la entrada (o hacia la salida) no implica con certeza que haya demasiados caminos desde la entrada hasta la salida.

Public test cases
  • Input

    2 2
    ..
    ..
    
    3 8
    .......X
    .X.X.X..
    X.......
    
    7 38
    ......................................
    ......................................
    ......................................
    ......................................
    ......................................
    ......................................
    ......................................
    
    2 40
    ........................................
    ......................................X.
    
    2 40
    .X......................................
    ........................................
    
    0 0
    

    Output

    2
    4
    !!!
    1
    1
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++ Python Python
    User solutions
    C++ Python