W tym wyzwaniu otrzymasz mapę dwuwymiarowego terenu widzianego z boku. Niestety niektóre części terenu unoszą się w powietrzu, co oznacza, że spadną. Twoim zadaniem jest przewidzieć, gdzie wylądują.
Wejście
Twoje dane wejściowe to jeden lub więcej ciągów oddzielonych znakiem nowej linii o równej długości, zawierających tylko znaki #
(znak liczbowy, oznaczający skałę) lub .
(kropka, oznaczająca puste miejsce).
Wyjście
Twoje dane wyjściowe mają ten sam format co dane wejściowe, ale z następującą modyfikacją. Zobaczmy łańcuch wejściowy jako dwuwymiarową siatkę skał. Każda skała na wejściu, która jest połączona z dnem siatki ścieżką sąsiednich skał, jest twarda ; inne skały są luźne . Skały przyległe po przekątnej nie są uważane za sąsiadujące. Wszystkie luźne skały spadną prosto w dół i wylądują jako stos na twardej skale lub w dolnym rzędzie. Luźne skały nie są ze sobą połączone, więc spadają indywidualnie, a nie jako duże formacje. Dane wyjściowe to wynikowa siatka.
Przykłady
Dane wejściowe
..###. .##.#. .#.... .##.#.
nie zawiera luźnych kamieni, więc wynik jest z nim identyczny.
Dane wejściowe
...#.. .#..#. .#..## .#...# .##### .#...#
zawiera jedną luźną skałę u góry, która spada na twardą skałę pod nią. Dane wyjściowe to
...... .#..#. .#..## .#.#.# .##### .#...#
Dane wejściowe
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
ma dużą grupę luźnych kamieni po lewej stronie. Grupa rozpada się, gdy skały spadają, więc wynik jest
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
Wyjaśnienia
- Możesz albo pobrać dane wejściowe ze STDIN, a dane wyjściowe do STDOUT, lub napisać funkcję.
- To jest golf golfowy, więc zwycięzcą jest najkrótszy program (w bajtach).
- Standardowe luki są niedozwolone.