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

hamayanhamayan's blog

KEYENCE String [KEYENCE Programming Contest 2019 / キーエンス プログラミング コンテスト 2019 B]

https://atcoder.jp/contests/keyence2019/tasks/keyence2019_b

解説

https://atcoder.jp/contests/keyence2019/submissions/3999565

取り除く領域を全探索する。
c++であれば、文字列操作はsubstrを使うのがおすすめ。
空の連続部分文字列を取り除く操作が許されている場合があるので、入力が既に"keyence"であった場合に注意。

string S;
string T = "keyence";
int N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> S;
    N = S.length();
 
    if (S == T) {
        printf("YES\n");
        return;
    }
 
    rep(a, 0, N) rep(b, a, N) {
        string s = "";
        if (a) s += S.substr(0, a);
        if (b + 1 < N) s += S.substr(b + 1);
        if (s == T) {
            printf("YES\n");
            return;
        }
    }
 
    printf("NO\n");
}