El problema de ``el Joc'' P56892


Statement
 

pdf   zip

thehtml

Aquí, haureu de resoldre un problema que és útil per a molts “Jocs” d’Algorísmia (i d’EDA): Donat un tauler n × m amb tresors i obstacles, cal calcular la distància de cada posició del tauler al tresor més proper. Suposeu que els moviments permesos només són horitzontals i verticals, i que no es pot passar per cap obstacle ni sortir del tauler.

Entrada

L’entrada consisteix en diversos casos, cadascun amb les mides n i m, seguides d’n línies amb m caràcters cadascuna: els punts indiquen posicions lliures, les ‘T’ tresors, i les ‘X’ obstacles. Suposeu 1 ≤ n · m ≤ 106.

Sortida

Per a cada cas, i per a cada posició, si conté un obstacle, marqueu-ho amb un -2. Altrament, escriviu la distància mínima a un tresor, o un -1 si no se’n pot arribar a cap. Escriviu una línia amb 10 guions al final de cada cas.

Public test cases
  • Input

    2 3
    T..
    .X.
    
    4 4
    ....
    ..T.
    X...
    .X.T
    
    1 2
    .X
    
    3 4
    ...T
    .XXX
    ....
    

    Output

    0 1 2
    1 -2 3
    ----------
    3 2 1 2
    2 1 0 1
    -2 2 1 1
    -1 -2 1 0
    ----------
    -1 -2
    ----------
    3 2 1 0
    4 -2 -2 -2
    5 6 7 8
    ----------
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++