読者です 読者をやめる 読者になる 読者になる

水面下の夢

競プロやイラストに興味があります.メインブログがここ.ソシャゲの話はこっち(http://ameblo.jp/0n0-yumechi/).ブログアイコンはYaQ(@8_9_00)さんから.

No.161 制限ジャンケン

回答

#45692 No.161 制限ジャンケン - yukicoder

まずひたすら勝つようにじゃんけんして,その後手を更新する.
そのあと,ひたすらあいこになるようにじゃんけんして,計算する….

単純なのですが,最初グー,ちょき,パーの順番で処理をしていたので失敗した.
(このじゃんけんではあいこ二回より,勝ち1負け1の方がポイントが高い)

貰えるポイントに寄っては処理の順番が変わるのかも.

gi, ci, pi = map(int, input().split())
s = list(input())
gc, cc, pc = s.count("G"), s.count("C"), s.count("P")
res = 0

# win count
res += cc * 3 if gi > cc else gi * 3
gi, cc = gi - cc if gi >= cc else 0, cc - gi if cc >= gi else 0
res += pc * 3 if ci > pc else ci * 3
ci, pc = ci - pc if ci >= pc else 0, pc - ci if pc >= ci else 0
res += gc * 3 if pi > gc else pi * 3
pi, gc = pi - gc if pi >= gc else 0, gc - pi if gc >= pi else 0

# same count
res += min(gi, gc)
res += min(pi, pc)
res += min(ci, cc)

print(res)