Вступление
Существует ствол яблони, расположенный между -2 и 2 на оси X, где вокруг него падают яблоки:
| |
| |
<-------|---|------->
-2 2
Каждый день, п яблоки падают. Каждое яблоко сохраняет свою координату х, падая прямо на землю.
Но если он приземлится поверх другого яблока, он будет катиться по следующим правилам, пока не достигнет земли или поддерживающего слоя яблок:
- Если пространство в точке x + 1 на его текущей высоте пусто, текущее яблоко идет туда.
- Иначе, если пространство в x-1 пусто, текущее яблоко идет туда.
- В противном случае текущее яблоко остается там, где оно находится поверх другого яблока.
Вызов
На входе будут n стартовых позиций каждого яблока по порядку. Вы можете воспринимать его как массив или как отдельные числа или любым другим допустимым способом, просто убедитесь, что вы объясните это в своем ответе.
На выходе должен быть ASCII-рисунок ствола дерева и яблок вокруг. От вас не требуется рисовать ось X слева от крайнего левого яблока и справа от крайнего правого яблока, но вам нужно нарисовать ее в любом месте под яблоком. Вы также можете расширить дерево выше самого высокого яблока.
Можно предположить, что все x-координаты находятся в диапазоне от -100 до 100, но не между -2 и 2.
Это код-гольф .. Самый короткий ответ в байтах побеждает!
Примеры
Входные данные: [-3, 5, 5, -4, -4, 5, -3]
Выход:
a| |
aaa| | aaa
---|---|----
Входные данные: [3, 3, 3, 3, 8, 9]
Выход:
| |a
| |aaa aa
|---|-------
Входные данные: [-5, -5, -5, -5, -5, -5, -5, -5, -5]
Выход:
a | |
aaa | |
aaaaa| |
-----|---|