はまやんはまやんはまやん

hamayanhamayan's blog

洋菓子店 [codeFlyer (bitFlyer Programming Contest)B]

https://beta.atcoder.jp/contests/bitflyer2018-qual/tasks/bitflyer2018_qual_b

解説

https://beta.atcoder.jp/contests/bitflyer2018-qual/submissions/2602924

問題に書いてあることをそのまま実装する。
分岐などはプログラムにコメントとして書いてある。

int A, B, N; string X;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> A >> B >> N >> X;
 
    fore(c, X) {
        if (c == 'S') {
            if(A) A--; // ショートケーキがあれば買う
        } else if (c == 'C') {
            if(B) B--; // チーズケーキがあれば買う
        } else {
            if (A < B) { // チーズケーキの方が多い
                if(B) B--; // チーズケーキがあれば買う(これは必ずあるが)
            } else { // ショートケーキの方が多いか、同じ数
                if(A) A--; // ショートケーキがあれば買う
            }
        }
    }
 
    cout << A << endl << B << endl;
}