Problem:
Score : 200 points

Problem Statement

A string is called a KEYENCE string when it can be changed to keyence by removing its contiguous substring (possibly empty) only once.

Given a string S consisting of lowercase English letters, determine if S is a KEYENCE string.

Constraints

The length of S is between 7 and 100 (inclusive).

S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S

Output

If S is a KEYENCE string, print YES; otherwise, print NO.

Sample Input 1

keyofscience

Sample Output 1

YES

keyence is an abbreviation of key of science.

Sample Input 2

mpyszsbznf

Sample Output 2

NO

Sample Input 3

ashlfyha

Sample Output 3

NO

Sample Input 4

keyence

Sample Output 4

YES

Solution in C++ (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
using namespace std;
int main(){

  string s;
  cin >> s;
  string key = "keyence";
  string key_head[] = {"k", "ke", "key", "keye", "keyen", "keyenc"};

  //vector<int> v{1,1,1};
  string key_tail[] = {"eyence", "yence", "ence", "nce", "ce", "e"};

  if(s.at(0) != 'k'){
    if(s.find(key) == -1 || s.find(key) + 7 != s.size()){
      cout << "NO" << endl;
      return 0;
    }
  }

  for(int i = 0; i < 6; i ++){
    if(s.find(key_head[i]) != -1){
		int j = s.find(key_head[i]);


      	if(s.find(key_tail[i], j + key_head[i].size()) != -1 ){
          cout << "YES" <<endl;
          return 0;
        }
    }
   }
         
  
	cout << "NO" << endl;
}