In questa sfida, ti viene data una mappa di un terreno bidimensionale, visto di lato. Sfortunatamente, alcune parti del terreno fluttuano nell'aria, il che significa che verranno a schiantarsi. Il tuo compito è prevedere dove atterrano.
L'ingresso
Il tuo input è una o più stringhe separate da newline di uguale lunghezza, contenenti solo i caratteri #
(un segno numerico, che indica una roccia) o .
(un punto, che indica uno spazio vuoto).
Il risultato
L'output ha lo stesso formato dell'input, ma con la seguente modifica. Vediamo la stringa di input come una griglia bidimensionale di rocce. Ogni roccia nell'ingresso che è collegata al fondo della griglia da un percorso di rocce adiacenti è ferma ; altre rocce sono sciolte . Le rocce adiacenti in diagonale non sono considerate adiacenti. Tutte le rocce sciolte cadranno diritte verso il basso e finiranno come una pila sopra una roccia ferma o la fila inferiore. Le rocce sciolte non sono attaccate l'una all'altra, quindi cadono individualmente, non come grandi formazioni. L'output è la griglia risultante.
Esempi
L'input
..###. .##.#. .#.... .##.#.
non contiene rocce sciolte, quindi l'output è identico ad esso.
L'input
...#.. .#..#. .#..## .#...# .##### .#...#
contiene una roccia sciolta nella parte superiore, che cade sulla roccia ferma sotto di essa. L'output è
...... .#..#. .#..## .#.#.# .##### .#...#
L'input
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
ha un grande gruppo di rocce sciolte sulla sinistra. Il gruppo si scompone quando le rocce cadono, quindi l'output è
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
chiarimenti
- Puoi prendere l'input da STDIN e inviarlo a STDOUT, oppure scrivere una funzione.
- Questo è code-golf, quindi il programma più breve (in byte) è il vincitore.
- Le scappatoie standard non sono ammesse.