前書き
これは長さ5のログです。
#####
私はこれらのログの束を互いに積み重ねたいです。これを行うには、新しいログを右から一番上のログにスライドさせ、左または右の端が揃うとスライドを停止します(理由は聞かないでください)。新しいログの方が長い場合、一番上のログの左端までスライドします。
######## <-
#####
短い場合、右端が揃うまでスライドします。
###### <-
########
#####
より多くのログをパイルにスライドさせると、それらの位置は現在の一番上のログによって決まります。
##
######
###
####
##
######
########
#####
これは物理的に不可能に見えますが、動作するふりをしましょう。
タスク
あなたの入力は、ログの長さを表す正の整数の空でないリストでなければなりません。左端の数字は、私が最初に山に置いたログなので、一番下になります。上記の例では、入力はになります[5,8,6,2,4,3,6,2]。出力は、結果の山の各列について、その列を通過するログの数になります。上記の例では、正しい出力はになります[2,2,3,3,3,2,4,6,3,3,1,2,2]。
ルールとスコアリング
入力および出力は、任意の合理的な形式にすることができます。出力には正の整数のみを含めることができます。つまり、先頭または末尾0のsを含めることはできません。通常のコードとゴルフのルールが適用されます。完全なプログラムまたは関数を記述でき、最小バイト数が優先され、標準の抜け穴は禁止されます。
テストケース
[1] -> [1]
[4] -> [1,1,1,1]
[3,2] -> [1,2,2]
[2,3] -> [2,2,1]
[2,2,2] -> [3,3]
[2,3,2] -> [2,3,2]
[3,2,3] -> [1,3,3,1]
[1,3,2,2,1,3,1] -> [2,3,5,1,2]
[4,3,4,2,4,3,4,2] -> [1,3,3,5,5,3,4,2]
[5,8,6,2,4,3,6,2] -> [2,2,3,3,3,2,4,6,3,3,1,2,2]
[5,10,15,1,1,1,1,1,2] -> [3,3,3,3,3,2,2,2,2,2,1,1,1,1,7,1]
[13,12,2,10,14,12] -> [1,2,2,2,2,2,2,2,2,2,2,5,5,3,3,3,3,3,3,3,3,2,2,2,2]
[12,14,3,6,13,1,1] -> [2,2,2,2,2,2,2,2,2,2,2,5,4,4,2,2,2,1,1,1,1,1,1,3]
[7,5,12,5,1,10,14,5] -> [1,1,3,3,3,3,3,1,1,2,2,2,2,5,2,2,2,2,2,2,2,2,3,2,2,2,2]
[14,5,1,3,12,6,2,2,1,7,9,15] -> [1,1,1,1,1,1,1,1,1,2,2,2,2,5,2,2,1,1,1,2,2,2,2,4,8,3,3,3,3,3,3,2,2,1,1,1,1,1,1]