Derrame de petróleo P30409


Statement
 

pdf   zip

Te pedimos que simules la expansión de un derrame de petróleo en el océano, sabiendo que la mancha se origina en los puntos marcados con una ‘X’, que las casillas con un ‘.’ corresponden a zonas de mar abierto por las que la mancha puede extenderse a razón de 1 asilla por unidad de tiempo, y que las casillas con un ‘#’ indican barreras por las que la mancha no puede extenderse.

En el instante de tiempo t=0t=0 la mancha (simbolizada por n ‘’) ocupa la casilla origen del derrame, y en cada unidad de tiempo posterior la mancha se expande a las cuatro casillas vecinas de cualquier casilla previamente ocupada.

Entrada

Cada juego de pruebas está formado por un mapa y diversas preguntas. El mapa se da con una línea con los números nn y mm (filas y columnas), seguido de nn líneas de mm caracteres cada una con la descripción del mismo. Al menos habrá un origen del derrame, pero puede haber más de uno.

A continuación, una secuencia de líneas, cada una de las cuales con un instante de tiempo ti0t_i\geq 0. Los tiempos t1,t2,t_1, t_2, \ldots se dan en orden creciente.

Salida

Para cada instante de tiempo tit_i, escribe el mapa con el estado del derrame en el instante de tiempo tit_i, siguiendo el formato indicado. Separa dos mapas con una cadena de mm caracteres ‘=’.

Pista

Para obtener 100 puntos, probablemente tendrás que saber qué es un recorrido en anchura. Es mucho más fácil de lo que parece, especialmente si aprendes a usar una cola (o ‘queue’).

Puntuación

Habrá 10 grupos de juegos de prueba. Los juegos de prueba del grupo ii-ésimo tendrán mapas donde n,mn,m serán, como mucho, 3, 5, 8, 10, 20, 40, 60, 100, 250 y 500. No se pedirá escribir más de 1515 instantes de tiempo, que nunca serán superiores a n×mn\times m. Se dará 10 puntos por cada grupo de juegos de pruebas resuelto.

Public test cases
  • Input

    3 3
    ...
    .X#
    ...
    0
    1
    2
    3
    

    Output

    ...
    .*#
    ...
    ===
    .*.
    **#
    .*.
    ===
    ***
    **#
    ***
    ===
    ***
    **#
    ***
    
  • Input

    8 6
    ....##
    ####..
    ....#.
    .X..#.
    ...#..
    ###..#
    ..X#.#
    ......
    0
    4
    10
    100
    

    Output

    ....##
    ####..
    ....#.
    .*..#.
    ...#..
    ###..#
    ..*#.#
    ......
    ======
    ....##
    ####..
    ****#.
    ****#.
    ***#..
    ###..#
    ***#*#
    ******
    ======
    ....##
    ####.*
    ****#*
    ****#*
    ***#**
    ###**#
    ***#*#
    ******
    ======
    ....##
    ####**
    ****#*
    ****#*
    ***#**
    ###**#
    ***#*#
    ******
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++