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

hamayanhamayan's blog

Unification [AtCoder Beginner Contest 120 C]

https://atcoder.jp/contests/abc120/tasks/abc120_c

解説

https://atcoder.jp/contests/abc120/submissions/4460380

全ての操作後を考えてみると、0のみか1のみになっていることが分かる。
かつ、全ての操作は0と1が1つずつ消えていくので、キューブを取り除けるだけ取り除く回数は、
min(0の個数, 1の個数)となっていることが分かる。
よって、答えはその回数の2倍なので、min(0の個数, 1の個数)×2である。

string S;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> S;
 
    int cnt[2] = { 0, 0 };
    fore(c, S) cnt[c - '0']++;
 
    int ans = min(cnt[0], cnt[1]) * 2;
    cout << ans << endl;
}