D - ロボット
Editorial
/
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
数直線の原点にロボットが置かれている。 はじめ、ロボットの幸福度は 0 である。
このロボットに命令列が与えられる。 命令列は次の 3 文字のみからなり、先頭から末尾まで順に実行される。
M
: 正または負の好きな向きに、距離 1 だけ移動する。+
: 今の座標を x とすると、幸福度が +x だけ変化する。-
: 今の座標を x とすると、幸福度が -x だけ変化する。
命令列を実行し終えた後、 ロボットは原点に戻っていなければならない 。 命令列を実行している間、ロボットの座標および幸福度は負になり得る。
最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を求めよ。
入力
入力は以下の形式で標準入力から与えられる。
S
- 1 行目には、命令列 S (1≦|S|≦10^5) が与えられる。S は
M
,+
,-
のみからなり、M
が偶数個含まれる。
部分点
この問題には部分点が設定されている。
- 1≦|S|≦1,000 を満たすデータセットに正解した場合は 30 点が得られる。
出力
最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を 1 行に出力せよ。 出力の末尾には改行を入れること。
入力例1
M+MM-M
出力例1
2
以下では、正の向きへの移動を >
、負の向きへの移動を <
と表す。
>+<<->
のように移動すればよい。
入力例2
MMM+M
出力例2
1
例えば >><+<
のように移動すればよい。
入力例3
MMM+--MMM
出力例3
3
<<<+-->>>
のように移動すればよい。
入力例4
+
出力例4
0