1. paizaラーニングトップ
  2. レベルアップ問題集
  3. リストメニュー応用編(言語選択)
  4. 問題一覧 C#編
  5. ダンベル C#編

リストメニュー応用編のサムネイル
ダンベル C#編(paizaランク C 相当)

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

問題

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

京子ちゃんは今ダンベルを持っています。京子ちゃんは最初、ダンベルには重りをつけておらず、棒のみを持っています。ここではこの棒の重さを 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


・ 1 行目に、インストラクターからの指示の数 Q が与えられます。
・ 2 行目から Q + 1 行目にかけて各指示の内容が与えられます。各指示は ADD_RIGHT XADD_LEFT XREMOVE_RIGHTREMOVE_LEFT の形式で与えられ、それぞれの X はダンベルの重さを表します。


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

最終的なダンベルの重さを出力してください。

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

条件

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

・ 1 ≦ Q ≦ 200,000
・ 1 ≦ X ≦ 10,000,000
REMOVE_LEFT , REMOVE_RIGHT の場合、ダンベルは重りが一つ以上存在する。

入力例1

5
ADD_RIGHT 1
ADD_RIGHT 2
ADD_RIGHT 3
REMOVE_LEFT
REMOVE_LEFT

出力例1

3

入力例2

6
ADD_RIGHT 1
ADD_RIGHT 2
ADD_LEFT 3
REMOVE_RIGHT
ADD_RIGHT 4
ADD_LEFT 5

出力例2

13

入力例3

9
ADD_RIGHT 3
ADD_LEFT 5
ADD_RIGHT 2
ADD_LEFT 1
REMOVE_RIGHT
REMOVE_RIGHT
REMOVE_LEFT
ADD_LEFT 7
REMOVE_LEFT

出力例3

5

問題一覧へ戻る

ページの先頭へ戻る