003 - プログラミング入門:Stack

時間制限 2 秒 / メモリ制限 256 MB / 得点 1 / x 7 /


TLE
2sec
MLE
256MB
得点
1

Stack

その名の通り、データを積み重ねていくデータ構造です。

データを積み重ねていき、取り出すときは最後に入れたデータが取り出されます。

主に深さ優先探索などで使われます。

力試しに下の問題をStackを用いて解いてみるといいでしょう。

以下にStackの主な仕様を記述します。

事前準備
<stack>をインクルードする。

宣言方法
 stack<型>構造体の名前
 例:stack<int>st;
  int型の要素を格納する st という名前のデータ構造を宣言します。

主な関数
 push(a):コンテナ(配列)の先頭に a を格納します。
 pop():コンテナの先頭の要素を削除します。
 top():コンテナの先頭の要素を返します。削除は行いません。
 size():コンテナに格納されている要素数を返します。
 empty():コンテナに何も格納されてない場合0以外を、格納されている場合1を返します。
 「 st.push(a) 」 のようにプログラム上で記述します。

問題

ある指定された命令が与えられるので、命令通りに動くプログラムを作成してください。

配列 L は最初空です。

push a
配列 L の先頭に a を格納してください。

top
配列 L の先頭の要素を出力してください。

pop
配列 L の先頭の要素を削除してください。

exit
プログラムを終了してください。

制約

  • 命令の数は 106 を超えない。
  • 配列が空の時に、"top"もしくは"pop"が与えられることはない。

入出力例

入力例

push 4
push 6
top
pop
push 2
top
top
exit

出力例

6
2
2