Introdução
Há um tronco de árvore de maçã posicionado entre -2 e 2 no eixo x, onde algumas maçãs caem ao seu redor:
| |
| |
<-------|---|------->
-2 2
Todos os dias, n maçãs caem. Cada maçã mantém sua coordenada x conforme cai diretamente no chão.
Mas se pousar em cima de outra maçã, rolará de acordo com as seguintes regras até chegar ao chão ou a uma camada de maçãs de suporte:
- Se o espaço em x + 1 na sua altura atual estiver vazio, a maçã atual vai para lá.
- Caso contrário, se o espaço em x-1 estiver vazio, a maçã atual vai para lá.
- Caso contrário, a maçã atual permanece onde está em cima da outra maçã.
Desafio
A entrada serão as n posições iniciais de cada maçã em ordem. Você pode tomá-lo como uma matriz ou como números separados ou de qualquer outra maneira válida, apenas certifique-se de explicá-lo em sua resposta.
A saída deve ser um desenho ASCII do tronco da árvore e das maçãs ao redor. Você não é obrigado a desenhar o eixo x à esquerda da maçã mais à esquerda e à direita da maçã mais à direita, mas precisa desenhá-lo em qualquer lugar em que esteja abaixo de alguma maçã. Você também pode estender a árvore acima da maçã mais alta.
Você pode assumir que todas as coordenadas x estão entre -100 e 100, mas não entre -2 e 2.
Este é o código-golfe . A resposta mais curta em bytes vence!
Exemplos
Entrada: [-3, 5, 5, -4, -4, 5, -3]
Resultado:
a| |
aaa| | aaa
---|---|----
Entrada: [3, 3, 3, 3, 8, 9]
Resultado:
| |a
| |aaa aa
|---|-------
Entrada: [-5, -5, -5, -5, -5, -5, -5, -5, -5]
Resultado:
a | |
aaa | |
aaaaa| |
-----|---|
Respostas:
PHP, 230 bytes
Adicionei as duas primeiras linhas novas para facilitar a leitura.
Ideone
Aqui está a versão não destruída:
fonte
Python 2.7, 282 bytes
Ideone
Bem, eu tentei.
fonte