Sie sind Angestellter im angesagten neuen Lebensmittelgeschäft Half Foods, und es ist der Tag vor Thanksgiving, Weihnachten, Ostern. Da der Laden mit Kunden gefüllt sein wird, die schnell nach Lebensmitteln suchen, benötigt der Laden einen Verkehrsmanager, der alle an die entsprechenden Leitungen weiterleitet. Faulenzen, möchten Sie diese so automatisieren , dass Sie die deli treffen gehen kann , bevor alle die ganze nimmt Truthahn Schinken was auch immer. Sie haben jedoch nur Ihr Telefon dabei, und das Codieren langer Programme ist ein echtes Problem - Sie müssen also Ihre Ninja- Code-Golf- Fähigkeiten unter Beweis stellen.
Herausforderung
Stellen wir uns das Lebensmittelgeschäft in einem zweidimensionalen Raster vor. Hier ist ein Mustergitter zum Zerlegen:
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
Das Raster beginnt mit einem e
, das eine "Steckdose" für den Rest des Geschäfts darstellt. Jede Generation, alle Verkaufsstellen im Raster, bringt einen Käufer ( s
) direkt darunter hervor. Die Käufer bewegen sich jede Generation nach unten, bis sie Sie erreichen ( Y
). Wenn ein Käufer dieselbe Reihe wie Sie erreicht, müssen Sie den Käufer an den Anfang der Zeile mit der geringsten Anzahl von Käufern teleportieren. Ein Käufer bewegt sich sofort zu der Linie, wenn er mit in die Reihe ziehen würde Y
, es gibt keine Generation dazwischen. Die Zeilen werden durch das #
s dargestellt - die Spalte nach dem #
s ist eine Zeile. Die Käufer gehen bis zum Ende der Linie (dargestellt durch einen Ausgang x
) und verwandeln sich dann in eine Zufallszahl zwischen 1
und5
. In jeder Generation müssen Sie die Anzahl der Käufer verringern 1
- wenn ein Käufer sie erreicht 0
, sind sie mit dem Auschecken fertig und verlassen den Laden.
Wenn Sie ein solches Raster eingegeben haben, geben Sie die nächste Generation des Lebensmittelladens aus (bewegen Sie alle Käufer gleichzeitig nach unten, leiten Sie die Käufer weiter und lassen Sie sie gehen, wenn sie fertig sind).
Proben
Eingang:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Ausgabe:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Eingang:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Ausgabe
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Eingang:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(Mögliche) Ausgabe:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Eingang:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Ausgabe:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
Eingang:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
Ausgabe:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Das ist Code-Golf , also gewinnt der kürzeste Code.