1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 配列活用メニュー(言語選択)
  4. 問題一覧 Python3編
  5. 場所取り

配列活用メニューのアイコン
場所取り (paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

開店直後に店に入るために、番号 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 とブルーシートの合計枚数 K と先頭から撤去されるブルーシートの枚数 F が半角スペース区切りで与えられます。
・続く K 行では、ブルーシートの所有者の番号 A_i (1 ≦ i ≦ N) が先頭から順に与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

先頭の人の番号
...
最後尾の人の番号


ブルーシートが撤去された後の入店順序を以上の形式で答えてください。
また、出力の末尾には改行を入れてください。

条件

・1 ≦ N, F ≦ 100
・N ≦ K
・1 ≦ A_i ≦ N (1 ≦ i ≦ K)

入力例1

5 10 1
1
4
4
3
5
4
2
4
1
1

出力例1

4
3
5
2
1

入力例2

2 13 10
2
1
1
2
1
2
2
2
1
2
1
1
2

出力例2

1
2

問題一覧へ戻る

ページの先頭へ戻る