あなたはヒップな新しい食料品店Half Foodsの従業員であり、感謝祭の クリスマスイースターの前日です。食料品を手に入れるために急いでいる顧客で店がいっぱいになるので、店は皆を適切な行に送るために交通マネージャーを必要とします。怠zyなので、これを自動化して、すべての七面鳥の ハムを食べる前にデリにぶつかることができます。ただし、携帯電話だけを持っているので、長いプログラムをコーディングするのは非常に苦痛です。そのため、忍者コードゴルフのスキルを打ち破る必要があります。
チャレンジ
食料品店を2次元のグリッドで視覚化します。分析するサンプルグリッドを次に示します。
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
グリッドはから始まりe
、ストアの残りの部分への「アウトレット」を表します。世代ごとに、グリッド内のすべてのアウトレットは、s
真下に買い物客()を生成します。買い物客はあなたに届くまで世代ごとに下降します(Y
)。買い物客があなたと同じ列に到達したら、買い物客が最も少ない行の先頭に買い物客をテレポートする必要があります。買い物客は、で行に移動するとすぐに行に移動し、Y
間に世代はありません。行は#
sで表されます。sの後の列#
は行です。買い物客は、(出口で表される行の最後まで行くx
)、その後間の乱数に変わる1
と5
。世代ごとに、番号の付いた買い物客を減らす必要があります1
-買い物客が到着すると0
、彼らはチェックアウトを済ませ、店を出ます。
このようなグリッドの入力が与えられたら、次世代の食料品店を出力します(すべての買い物客を同時に下に移動し、買い物客をリダイレクトし、終わったら退場させます)。
サンプル
入力:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
出力:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
入力:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
出力
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
入力:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(可能)出力:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
入力:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
出力:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
入力:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
出力:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
これはcode-golfなので、最短のコードが優先されます。