El algoritmo del pintor P30648


Statement
 

pdf   zip

html

Te pedimos que hagas un programa que sea capaz de pintar encima de un dibujo (una cuadrícula de caracteres). En concreto, cuando pintas con un color (pongamos, la letra ‘C’) encima de una casilla de otro color (pongamos, la letra ‘z’), esta casilla pasará a tener color ‘C’. Lo mismo pasará con todas las casillas ‘z’ que sean adyacentes a la primera ‘z’, y con las casillas ‘z’ adyacentes a estas segundas ‘z’, etc. Las letras que no sean ‘z’ actuarán como paredes que evitan que la pintura se expanda.

¿Eres capaz de programar esto?

Entrada

Un número N con el tamaño del tablero cuadrado. A continuación, una línea con una letra mayúscula (el color con el que pintas) seguido de dos coordenadas 1≤ i, jN, con la fila y columna de la casilla donde se empieza pintando. Por último, N filas de N caracteres cada una, todos ellos letras minúsculas, con el contenido inicial del tablero.

Salida

Escribe como queda el tablero después de ser pintado. Mira los ejemplos para resolver posibles dudas.

Puntuación

  • Test1:  25 Puntos 

    Entradas con 3≤ N≤ 10 y la pintura nunca tocará el borde del tablero.

  • Test2:  25 Puntos 

    Entradas con 3≤ N≤ 100 y la pintura nunca tocará el borde del tablero.

  • Test3:   Entradas con 1≤ N≤ 200.  25 Puntos 
  • Test4:   Entradas con 1≤ N≤ 500.  15 Puntos 
  • Test5:   Entradas con 1≤ N≤ 1000.  10 Puntos 
Public test cases
  • Input

    4
    C 2 2
    oooo
    ozzo
    ozzo
    oooo
    

    Output

    oooo
    oCCo
    oCCo
    oooo
    
  • Input

    6
    P 2 2
    oooooo
    ozzzzo
    ommmzo
    ozmzzo
    ozmmmo
    oooooo
    

    Output

    oooooo
    oPPPPo
    ommmPo
    ozmPPo
    ozmmmo
    oooooo
    
  • Input

    10
    I 9 9
    mmmmmmmmmm
    miiiiimiim
    miiimmimim
    miiiiimmim
    mmmmmiiiim
    miiimimmmm
    miiimimiim
    miiimimmmm
    miimiiiiim
    mmmmmmmmmm
    

    Output

    mmmmmmmmmm
    mIIIIImIIm
    mIIImmimIm
    mIIIIImmIm
    mmmmmIIIIm
    miiimImmmm
    miiimImiim
    miiimImmmm
    miimIIIIIm
    mmmmmmmmmm
    
  • Input

    5
    A 2 2
    aaaba
    aaabb
    aaaaa
    abaaa
    aaaba
    

    Output

    AAAba
    AAAbb
    AAAAA
    AbAAA
    AAAbA
    
  • Input

    5
    A 2 2
    aaaba
    ababb
    aaaaa
    abaaa
    aaaba
    

    Output

    aaaba
    aAabb
    aaaaa
    abaaa
    aaaba
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++