【データセット選択メニュー】> FINAL問題 動的配列 (paizaランク D 相当) [難易度: 1387 ±12]
※リンク先へ移動するためには[paiza]へのログインが必要です。
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」を出力します。
入力値(例)
3 5
1 2 3
0 10
0 12
2
1
2
出力値(例)
1 2 3 10 12
1 2 3 10
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php list($n, $q) = explode(" ", trim(fgets(STDIN))); $array = explode(" ", trim(fgets(STDIN))); for($i = 0; $i < $q; $i++) { $c = trim(fgets(STDIN)); if(strpos($c, 0) !== FALSE) { list($zero, $x) = explode(" ", $c); array_push($array, $x); } elseif($c == 1) { array_pop($array); } elseif($c == 2) { $result = implode(" ", $array); echo $result. "\n"; } } ?> |