atcoder#ARC062B. [ABC046D] AtCoDeerくんと変なじゃんけん

[ABC046D] AtCoDeerくんと変なじゃんけん

配点 : 300300

問題文

シカのAtCoDeerくんは友達のTopCoDeerくんとあるゲームをして対戦しています。 このゲームは NN ターンからなります。各ターンではそれぞれのプレイヤーはじゃんけんのグーかパーを出します。ただし、各プレイヤーは次の条件を満たす必要があります。

(※) 各ターンの後で、(今までにパーを出した回数)\leq(今までにグーを出した回数) を満たす

このゲームでの各プレイヤーの得点は、(勝ったターンの数) - (負けたターンの数) です。 AtCoDeerくんは特殊能力を持っているので、ゲームが始まる前にTopCoDeerくんの出す NN ターンの手を全て知ることが出来ました。 AtCoDeerくんの各ターンでの手を決めて、AtCoDeerくんの得点を最大化してください。 TopCoDeerくんの出す手の情報は文字列 ss で与えられます。 ssi(1iN)i(1 \leq i \leq N) 文字目が gのときは ii ターン目でTopCoDeerくんがグーを出すことを、 pのときはパーを出すことを表します。

制約

  • 1N1051 \leq N \leq 10^5
  • N=sN=|s|
  • ss の各文字はgp
  • ss で表される手は、条件(※)を満たしている

入力

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

ss

出力

AtCoDeerくんの得点の最大値を出力せよ。

gpg
0

常に相手とあいこになるように手を出すことで、00点を取ることができて、これが最大値です。

ggppgggpgg
2

例えばグー,パー,グー,パー,グー,グー,パー,パー,グー,パー と出すことで、 33回勝って11回負けているので得点は22点になり、これが最大値です。