En este desafío, se te da un mapa de un terreno bidimensional, visto desde un lado. Desafortunadamente, algunas partes del terreno están flotando en el aire, lo que significa que se derrumbarán. Su trabajo es predecir dónde aterrizan.
La entrada
Su entrada es una o más cadenas separadas por una nueva línea de igual longitud, que contiene solo los caracteres #
(un signo de número, que significa una roca) o .
(un punto, que significa espacio vacío).
La salida
Su salida tiene el mismo formato que la entrada, pero con la siguiente modificación. Veamos la cadena de entrada como una cuadrícula de rocas bidimensional. Cada roca en la entrada que está conectada al fondo de la cuadrícula por un camino de rocas adyacentes es firme ; Otras rocas están sueltas . Las rocas adyacentes en diagonal no se consideran adyacentes. Todas las rocas sueltas caerán hacia abajo y terminarán como una pila encima de una roca firme o en la fila inferior. Las rocas sueltas no están unidas entre sí, por lo que caen individualmente, no como formaciones grandes. La salida es la cuadrícula resultante.
Ejemplos
La entrada
..###. .##.#. .#.... .##.#.
no contiene rocas sueltas, por lo que la salida es idéntica.
La entrada
...#.. .#..#. .#..## .#...# .##### .#...#
contiene una roca suelta en la parte superior, que cae sobre la roca firme debajo de ella. La salida es
...... .#..#. .#..## .#.#.# .##### .#...#
La entrada
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
tiene un gran grupo de rocas sueltas a la izquierda. El grupo se descompone a medida que caen las rocas, por lo que la salida es
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
Aclaraciones
- Puede tomar la entrada de STDIN y la salida a STDOUT, o escribir una función.
- Este es el código de golf, por lo que el programa más corto (en bytes) es el ganador.
- Las lagunas estándar no están permitidas.