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

hamayanhamayan's blog

AKIBA [CODE FESTIVAL 2017 Final A]

https://cf17-final-open.contest.atcoder.jp/tasks/cf17_final_a

解法

https://cf17-final-open.contest.atcoder.jp/submissions/1812639

validな文字列はそんなに多くないので、全て試してしまおう。
validな文字列は"AKIHABARA"のAがあるかないかの文字列。
これを各場所のAのあるなしなので、2^4通りある。
マスクループを使って全て列挙していこう。

string S;
//---------------------------------------------------------------------------------------------------
string solve() {
    rep(msk, 0, 1 << 4) {
        string s = "";
        if (msk & (1 << 0)) s += "A";
        s += "KIH";
        if (msk & (1 << 1)) s += "A";
        s += "B";
        if (msk & (1 << 2)) s += "A";
        s += "R";
        if (msk & (1 << 3)) s += "A";

        if (S == s) return "YES";
    }
    return "NO";
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> S;
    cout << solve() << endl;
}