introduzione
C'è un tronco di melo posizionato tra -2 e 2 sull'asse x, dove alcune mele cadono attorno ad esso:
| |
| |
<-------|---|------->
-2 2
Ogni giorno, n mele cadono. Ogni mela mantiene la sua coordinata x mentre cade direttamente a terra.
Ma se atterra su un'altra mela, rotolerà secondo le seguenti regole fino a raggiungere il terreno o uno strato di supporto di mele:
- Se lo spazio in x + 1 alla sua altezza attuale è vuoto, la mela corrente va lì.
- Altrimenti se lo spazio in x-1 è vuoto, la mela corrente va lì.
- Altrimenti la mela corrente rimane dove si trova sopra quell'altra mela.
Sfida
L'input saranno le n posizioni iniziali di ciascuna mela in ordine. Puoi prenderlo come un array o come numeri separati o in qualsiasi altro modo valido, assicurati solo di spiegarlo nella tua risposta.
L'output dovrebbe essere un disegno ASCII del tronco d'albero e delle mele intorno. Non è necessario disegnare l'asse x alla sinistra della mela più a sinistra e alla destra della mela più a destra, ma è necessario disegnarlo ovunque si trovi sotto una mela. Puoi anche estendere l'albero sopra la mela più alta.
Puoi assumere tutto coordinate x siano comprese tra -100 e 100, ma non tra -2 e 2.
Questo è code-golf .. Vince la risposta più breve in byte!
Esempi
Ingresso: [-3, 5, 5, -4, -4, 5, -3]
Produzione:
a| |
aaa| | aaa
---|---|----
Ingresso: [3, 3, 3, 3, 8, 9]
Produzione:
| |a
| |aaa aa
|---|-------
Ingresso: [-5, -5, -5, -5, -5, -5, -5, -5, -5]
Produzione:
a | |
aaa | |
aaaaa| |
-----|---|