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

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

题目描述

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

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

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

输入格式

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

s s

输出格式

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

题目大意

你和对手都只有两种出拳方式:石头(gg)和布(pp),规则一样,赢了得一分,平局不得分,输了减一分。 现给你对手的出拳方式,设你到 ii 位置共出了 xix_i 次石头,yiy_i 次布,在对于任意位置 ii 满足 xiyix_i \geq y_i 的条件下,输出你能得到的最大分数。

gpg
0
ggppgggpgg
2

提示

制約

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

Sample Explanation 1

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

Sample Explanation 2

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