Wyzwanie
Biorąc pod uwagę prostokątną siatkę drukowanych znaków ascii jako ciąg znaków lub standardowe wejście, napisz funkcję lub program, który zwinie znaki spacji w stos na dole.
Zasady:
- Dane wyjściowe mają takie same wymiary i znaki jak dane wejściowe.
- Ma charakteru miejsca na
(row a,column b)nie mogą mieć znak spacji' 'na(a-1, b),(a-1,b-1)lub(a-1,b+1), w którym wiersze są numerowane od dołu skrajnej. Powoduje to, że wszystkie stosy pionowe powinny zwinąć się na boki. - Postać niebędąca spacją może podróżować w większości
(initial height - final height)miejsc w lewo lub w prawo (patrz ryc. 1). - Możesz założyć, że obraz ma wystarczająco dużo miejsca, aby zwinąć się bez znaków wypadających z ekranu.
Ryc. 1: możliwe końcowe lokalizacje dla postaci @#$pokazanych x,y,zodpowiednio jako.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
Kolejność zwijania się postaci można dowolnie wybierać. Końcowe spacje nie są w porządku, ale końcowe znaki nowej linii są.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach!
Przykład
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Jedno możliwe wyjście:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...



