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

hamayanhamayan's blog

色食い虫 [yukicoder No.785]

https://yukicoder.me/problems/no/785

解説

https://yukicoder.me/submissions/315630

ある色について、使えない文字がn種類あった場合は、使える文字は16-n種類となる。
ある色は2桁で表現されるので、この場合は(16-n)^2通りの表現ができることになる。
答えは3色についての組み合わせの総積となる。
各色について処理は全く一緒なので、forで繰り返し実行して答えを求めよう。
 
入力が特殊なので、これの処理が一番大変な所だと思うが、コンマで分割して処理しよう。
自分はどっかから持ってきたsplit関数を持ってたので貼った。
今回は具体的に何が禁止されているかは問題ではなく、使えない文字が何文字かだけに興味があるので、
コンマの数だけ数えて+1が使えない文字数としても問題ない。

string C;
//---------------------------------------------------------------------------------------------------
void _main() {
    int ans = 1;
    rep(i, 0, 3) {
        cin >> C;

        if (C == "NONE") {
            ans *= 16 * 16;
            continue;
        }

        auto v = split(C, ",");
        int n = v.size();
        ans *= (16 - n) * (16 - n);
    }
    cout << ans << endl;
}