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

hamayanhamayan's blog

Touitsu [全国統一プログラミング王決定戦予選/NIKKEI Programming Contest 2019 B]

https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_b

解説

https://atcoder.jp/contests/nikkei2019-qual/submissions/4097460

各文字毎に操作は独立しているので、別々に考えることができる。
各桁で最小で必要な回数は、全て同じ・1つだけ違う・全部バラバラの3択であり、0回、1回、2回となる。
同じ数の個数はsetで数えればいい。

int N; string A, B, C;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> A >> B >> C;
 
    int ans = 0;
    rep(i, 0, N) {
        set<char> c;
        c.insert(A[i]);
        c.insert(B[i]);
        c.insert(C[i]);
 
        if (c.size() == 1) continue;
        else if (c.size() == 2) ans++;
        else ans += 2;
    }
    cout << ans << endl;
}