Laberint P34055


Statement
 

pdf   zip

Us han dut en helicòpter a dins d’un laberint de mides n×mn \times m. Mentre baixàveu, heu tingut temps de memoritzar quines caselles tenen obstacles, per les quals no es pot passar si no s’enderroquen. Sabent que només us podeu moure horitzontalment o verticalment, quants obstacles haureu d’enderrocar per poder sortir del laberint?

Entrada

L’entrada conté diversos casos. Cada cas comença amb les mides nn i mm del laberint, seguides d’nn files amb mm caràcters cadascuna. Els obstacles es marquen amb ‘X’, i les posicions lliures amb punts. Hi ha exactament una ‘I’ que indica la posició inicial (que no té cap obstacle). Podeu suposar que tant nn com mm es troben entre 1 i 1000.

Sortida

Per a cada cas, escriviu el mínim nombre de caselles que cal tirar per sortir del laberint.

Puntuació

  • Cas A:   Casos on la sortida és 0 o 1, com l’exemple d’entrada 1.

  • Cas B:   Casos de tot tipus.

Public test cases
  • Input

    4 5
    XXXXX
    XXIXX
    XXXXX
    .XX.X
    
    1 1
    I
    
    7 10
    XXXXXXXXXX
    .........X
    XXXXXXXX.X
    X.....IX.X
    X.XXXXXX.X
    X........X
    XXXXXXXXXX
    

    Output

    1
    0
    0
    
  • Input

    5 6
    XXXXXX
    X..XXX
    .XXIXX
    ..XXXX
    ..XXXX
    
    10 15
    XXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXX
    XXXXXXXXXX.XXXX
    XXXXXXX.....XXX
    XXXXXXXXXXXXXXX
    ..XXXX.IXXXXXXX
    XXXXXXXXXXXXXXX
    X.....XXXX.XXXX
    XXXXXXXXXX.XXXX
    XXXXXXXXXX.XXXX
    

    Output

    2
    3
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++