Sei un dipendente del nuovo negozio di alimentari alla moda Half Foods, ed è il giorno prima del Ringraziamento Natale Pasqua. Poiché il negozio sarà pieno di clienti che si affrettano a procurarsi i loro prodotti alimentari, il negozio ha bisogno di un gestore del traffico per inviare tutti alle linee appropriate. Essendo pigro, ti piacerebbe automatizzare questo in modo da poter andare a fare un giro nella gastronomia prima che tutti prendano tutto il prosciutto di tacchino qualunque. Tuttavia, tutto ciò che hai con te è il tuo telefono, e codificare programmi lunghi su di esso è un vero dolore - quindi devi sbrigare le tue abilità di ninja nel golf del codice .
Sfida
Visualizziamo il negozio di alimentari su una griglia bidimensionale. Ecco una griglia di esempio per dissezionare:
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
La griglia inizia con un e
, che rappresenta uno "sbocco" per il resto del negozio. Ogni generazione, tutti gli sbocchi della griglia generano un acquirente ( s
) direttamente sotto. Gli acquirenti si muovono verso il basso ogni generazione fino a quando non ti raggiungono ( Y
). Quando un acquirente raggiunge la stessa riga di te, devi teletrasportarlo all'inizio della linea con il minor numero di acquirenti presenti. Un acquirente si sposta immediatamente sulla linea quando si sposterebbe nella fila con la Y
, non c'è generazione in mezzo. Le linee sono rappresentate dalla #
s - la colonna dopo la #
s è una linea. Gli acquirenti scendono fino alla fine della linea (rappresentata da un'uscita x
), quindi si trasformano in un numero casuale tra 1
e5
. Ogni generazione, è necessario decrementare gli acquirenti numerati di 1
: quando un acquirente avrebbe raggiunto 0
, hanno terminato il checkout e hanno lasciato il negozio.
Dato un input di una griglia come questa, genera la prossima generazione del negozio di alimentari (sposta contemporaneamente tutti gli acquirenti verso il basso, reindirizza gli acquirenti e lasciali andare se hanno finito).
Campioni
Ingresso:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Produzione:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Ingresso:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Produzione
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Ingresso:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(Possibile) Uscita:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Ingresso:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Produzione:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
Ingresso:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
Produzione:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Questo è code-golf , quindi vince il codice più corto.