Este problema es muy parecido al anterior problema de derrame de petróleo, excepto que en cada casilla hay corrientes marinas que hacen que el petróleo se desplace más rápidamente en una dirección que en otra. En concreto:
Al igual que en problema “Derrame de petróleo”, te pedimos que simules la expansión de la mancha de petróleo. Esta vez, cada casilla se especifica con dos caracteres. Las casillas sin barreras (##) y que no sean origen de la mancha (’XX’) son de la forma dc, donde d es un dígito de 0 a 9 que indica la intensidad I de la corriente, y c es un caracter ’N’, ’E’, ’S’ o ’W’ que indica la dirección de la corriente. Se entiende que la corriente tiene intensidad I=0 en las casillas que son origen de la mancha.
Entrada
El formato de entrada es prácticamente idéntico al del problema “Derrame de petróleo”. El mapa se da con una línea con los números n y m (filas y columnas), seguido de n líneas con m pares de caracteres cada una, separados por espacios, con la descripción del mapa. 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 ti≥ 0. Los tiempos t1, t2, … se dan en orden creciente.
Salida
Para cada instante de tiempo ti, escribe el mapa con el estado del derrame en el instante de tiempo ti, siguiendo el formato indicado. Separa dos mapas con una cadena de m caracteres ’=’.
Pista
Si aspiras a obtener 100 puntos en este problema te recomendamos usar el algorismo de Dijsktra (que no es mas que un recorrido en anchura, teniendo en cuenta que los desplazamientos entre casillas vecinas tardan tiempos distintos). ¡Si no sabes que es una cola de prioridades (priority_queue), ahora es el momento de aprenderlo! (Mira el tutorial de la STL en la web).
Puntuación
Habrá 10 grupos de juegos de prueba. Los juegos de prueba del grupo i-ésimo tendrán mapas donde n,m serán, como mucho, 3, 5, 8, 10, 20, 40, 60, 100, 250 y 500. No se pedirá escribir más de 15 instantes de tiempo, que nunca serán superiores a 20n× m. Se dará 10 puntos por cada grupo de juegos de pruebas resuelto en menos de 1 segundo de CPU por juego.
Input
7 10 9W 9W 9W 9W 9W 9W 9W 9W 9W 9W 0N 0N 0N 0N 0N 0N 0N 0N 5N 5N 0N 0N 0N 0N 0N 0N 0N 0N 5N 5N 9E XX 9E 9E 9E 9E 9E 9E 9N 9N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 9W 9W 9W 9W 9W 9W 9W 9W 9W 9W 0 9 10 20 30 40 50 60 65
Output
.......... .......... .......... .*........ .......... .......... .......... ========== .......... .......... .......... .*........ .......... .......... .......... ========== .......... .......... .*........ ***....... .*........ .......... .......... ========== .......... .*........ ***.....*. *********. ***....... .*........ .......... ========== .*...****. ***.....*. ********** ********** ********.. ***....... .*........ ========== ********** ********** ********** ********** *********. ********.. ***....... ========== ********** ********** ********** ********** ********** *********. ********.. ========== ********** ********** ********** ********** ********** ********** *********. ========== ********** ********** ********** ********** ********** ********** **********
Input
7 10 9W 9W 9W 9W 9W 9W 9W 9W 9W 9W 0N 0N 0N 0N 0N 0N 0N 0N 5N 5N ## ## ## ## ## ## ## ## 5N 5N 9E XX 9E 9E 9E 9E 9E 9E 9N 9N ## ## ## ## 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 0N 9W 9W 9W 9W 9W 9W 9W 9W 9W 9W 0 9 10 20 30 40 50 60 65
Output
.......... .......... ########.. .*........ ####...... .......... .......... ========== .......... .......... ########.. .*........ ####...... .......... .......... ========== .......... .......... ########.. ***....... ####...... .......... .......... ========== .......... .......... ########*. *********. ####...... .......... .......... ========== .....****. ........*. ########** ********** ####****.. .......... .......... ========== ********** .....***** ########** ********** ####*****. ....****.. .......... ========== ********** ********** ########** ********** ####****** ...******. ********.. ========== ********** ********** ########** ********** ####****** ********** *********. ========== ********** ********** ########** ********** ####****** ********** **********