問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
京子ちゃんは今ダンベルを持っています。京子ちゃんは最初、ダンベルには重りをつけておらず、棒のみを持っています。ここではこの棒の重さを 0 kg とします。
京子ちゃんはインストラクターの指示に従い、ダンベルの棒に重りをつけたいと思います。インストラクターは Q 回京子ちゃんに指示をおこないます。指示は以下の 4 種類のいずれかです。
・ ADD_RIGHT X
ダンベルの右端に X キログラムの重りをつけます
・ ADD_LEFT X
ダンベルの左端に X キログラムの重りをつけます
・ REMOVE_RIGHT
ダンベルに付いている重りのうち、一番右端の重りを 1 つ外します
・ REMOVE_LEFT
ダンベルに付いている重りのうち、一番左端の重りを 1 つ外します
最終的なダンベルの重さを出力してください。なお、ADD_RIGHT X
(ADD_LEFT X
) でつけた重りを REMOVE_LEFT
(REMOVE_RIGHT
) で取り外せることに注意してください。
Q
Query_1
Query_2
...
Query_Q
ADD_RIGHT X
、 ADD_LEFT X
、 REMOVE_RIGHT
、 REMOVE_LEFT
の形式で与えられ、それぞれの X はダンベルの重さを表します。
最終的なダンベルの重さを出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ Q ≦ 200,000
・ 1 ≦ X ≦ 10,000,000
・ REMOVE_LEFT
, REMOVE_RIGHT
の場合、ダンベルは重りが一つ以上存在する。
5
ADD_RIGHT 1
ADD_RIGHT 2
ADD_RIGHT 3
REMOVE_LEFT
REMOVE_LEFT
3
6
ADD_RIGHT 1
ADD_RIGHT 2
ADD_LEFT 3
REMOVE_RIGHT
ADD_RIGHT 4
ADD_LEFT 5
13
9
ADD_RIGHT 3
ADD_LEFT 5
ADD_RIGHT 2
ADD_LEFT 1
REMOVE_RIGHT
REMOVE_RIGHT
REMOVE_LEFT
ADD_LEFT 7
REMOVE_LEFT
5