名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

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)