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