Eres un empleado de la nueva tienda de comestibles Half Foods, y es el día antes del Día de Acción de Gracias Navidad Pascua. Dado que la tienda estará repleta de clientes que se apresuran a conseguir sus alimentos, la tienda necesita un administrador de tráfico para enviar a todos a las líneas apropiadas. Siendo perezoso, te gustaría automatizar esto para que puedas ir a la tienda de delicatessen antes de que todos tomen todo el jamón de pavo . Sin embargo, todo lo que tiene con usted es su teléfono, y codificar programas largos en él es un verdadero dolor, por lo que debe desarrollar sus habilidades de golf de código ninja .
Desafío
Visualicemos el supermercado en una cuadrícula bidimensional. Aquí hay una cuadrícula de muestra para diseccionar:
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
La cuadrícula comienza con un e
, que representa una "salida" para el resto de la tienda. Cada generación, todos los puntos de venta en la red generan un comprador ( s
) directamente debajo. Los compradores se mueven hacia abajo cada generación hasta que te alcanzan ( Y
). Cuando un comprador llega a la misma fila que usted, debe teletransportarse al comienzo de la línea con la menor cantidad de compradores. Un comprador se mueve inmediatamente a la línea cuando se movería a la fila con el Y
, no hay generación intermedia. Las líneas están representadas por la #
s: la columna después de la #
s es una línea. Los compradores bajan hasta el final de la línea (representado por una salida x
), y luego se convierten en un número aleatorio entre 1
y5
. Cada generación, debe disminuir los compradores numerados por 1
: cuando un comprador llega 0
, terminan de pagar y salen de la tienda.
Dada una entrada de una cuadrícula como esta, envíe la próxima generación de la tienda de comestibles (mueva a todos los compradores hacia abajo simultáneamente, redirija a los compradores y haga que se vayan si ya han terminado).
Muestras
Entrada:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Salida:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Entrada:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Salida
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Entrada:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(Posible) Salida:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Entrada:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Salida:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
Entrada:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
Salida:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Este es el código de golf , por lo que gana el código más corto.