データセット選択メニューのサムネイル
動的配列 (paizaランク D 相当)

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

問題

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

N 個の要素からなる数列 A が与えられます。数列 A に対し、次の 3 つの操作を行うプログラムを作成してください。

push_back x : A の末尾に x を追加する
pop_back : A の末尾を削除する
print : A を半角スペース区切りで1行に出力する


例えば、入力例 1 において、数列 A は最初「1 2 3」です。最初の操作は「push_back 10」なので、末尾に 10 を追加して「1 2 3 10」となります。 2 つ目の操作は「push_back 12」なので、「1 2 3 10 12」となります。 3 つ目の操作は「print」なので「1 2 3 10 12」を出力します。 4 つ目の操作は「pop_back」なので末尾の「12」を削除して、「1 2 3 10」となります。最後の操作は「print」なので「1 2 3 10」を出力します。

入力される値

N Q
A_1 A_2 A_3 ... A_N
query_1
query_2
...
query_Q


1 行目に A の要素数 N と、A に対する操作回数 Q が与えられます。2 行目に A の 各要素の値が与えられます。続くQ行のうち i 行目に、各操作の情報 query_i が与えられます。query_i は

0 x

または
1

または
2


の形式で与えられ、最初の数値が 0 xpush_back x を、 1pop_back を、 2print をそれぞれ表します。


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

各 query の指示に従って適切な出力を行ってください。

末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 1 ≦ N ≦ 100
・ 1 ≦ Q ≦ 100
・ 1 ≦ A_i ≦ 100 (1 ≦ i ≦ N)
・ query_i は 0 x または 1 または 2
・ 1 ≦ x ≦ 100
pop_back 操作が指定される際、Aの要素数は 1 以上

入力例1

3 5
1 2 3
0 10
0 12
2
1
2

出力例1

1 2 3 10 12
1 2 3 10

問題一覧へ戻る

ページの先頭へ戻る