D - ロボット Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

数直線の原点にロボットが置かれている。 はじめ、ロボットの幸福度は 00 である。

このロボットに命令列が与えられる。 命令列は次の 33 文字のみからなり、先頭から末尾まで順に実行される。

  • M : 正または負の好きな向きに、距離 11 だけ移動する。
  • + : 今の座標を xx とすると、幸福度が +x+x だけ変化する。
  • - : 今の座標を xx とすると、幸福度が x-x だけ変化する。

命令列を実行し終えた後、 ロボットは原点に戻っていなければならない 。 命令列を実行している間、ロボットの座標および幸福度は負になり得る。

最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を求めよ。


入力

入力は以下の形式で標準入力から与えられる。

SS
  • 11 行目には、命令列 SS (1S1051≦|S|≦10^5) が与えられる。SSM, +, - のみからなり、M が偶数個含まれる。

部分点

この問題には部分点が設定されている。

  • 1S1,0001≦|S|≦1,000 を満たすデータセットに正解した場合は 3030 点が得られる。

出力

最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を 11 行に出力せよ。 出力の末尾には改行を入れること。


入力例1Copy

Copy
M+MM-M

出力例1Copy

Copy
2

以下では、正の向きへの移動を >、負の向きへの移動を < と表す。

>+<<-> のように移動すればよい。


入力例2Copy

Copy
MMM+M

出力例2Copy

Copy
1

例えば >><+< のように移動すればよい。


入力例3Copy

Copy
MMM+--MMM

出力例3Copy

Copy
3

<<<+-->>> のように移動すればよい。


入力例4Copy

Copy
+

出力例4Copy

Copy
0


2025-04-03 (Thu)
09:13:06 +00:00