問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
開店直後に店に入るために、番号 1 〜 N の N 人が開店前に店の前にブルーシートを合計 K 枚置きました。ブルーシートの先頭は A_1 , 最後尾は A_K です。しかし、店側は先頭から F 枚のブルーシートを撤去しました。
1 〜 N 番の人々は次のルールに従って店に並びます。
・自分のブルーシートが 1 枚以上残っているとき、自分のブルーシートのうち、最も先頭に近いブルーシートの位置に並ぶ。
・自分のブルーシートが 1 枚も残っていないとき、並ぶことなく帰宅する。
全員が並び終わった後に待機列にいる人の番号を先頭から順に答えてください。
例
・N = 3, K = 6, F = 3, A = [3, 2, 1, 2, 3, 2] のとき
撤去が行われる前と行われた後のブルーシートの様子は次の通りになります。
番号 1 の人のブルーシートは 1 枚も残っていないので並ぶことなく帰宅します。
番号 2 の人のブルーシートは 2 枚残っているので、最も先頭に近いブルーシートの位置に並びます。
番号 3 の人のブルーシートは 1 枚残っているので、そのブルーシートの位置に並びます。
最終的な待機列は次の通りになるので、期待する出力は
2
3
N K F
A_1
...
A_K
先頭の人の番号
...
最後尾の人の番号
・1 ≦ N, F ≦ 100
・N ≦ K
・1 ≦ A_i ≦ N (1 ≦ i ≦ K)
5 10 1
1
4
4
3
5
4
2
4
1
1
4
3
5
2
1
2 13 10
2
1
1
2
1
2
2
2
1
2
1
1
2
1
2