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 <stdio.h>
    #include <string.h>
     
    int main(void){
      char str[100];
      int counter = 0;
      int flag[8] = {0,0,0,0,0,0,0,0};
      int is_end = 0;
      scanf("%s",str);
     
      for(int i = 0;i<strlen(str);i++){
        switch(counter){
          case 0:
            if(str[i] == 'k'){
              counter++;
            }else{
              flag[0] = 1;
            }
            break;
          case 1:
            if(str[i] == 'e'){
              counter++;
            }else{
              flag[1] = 1;
            }
            break;
          case 2:
            if(str[i] == 'y'){
              counter++;
            }else{
              flag[2] = 1;
            }
            break;
          case 3:
            if(str[i] == 'e'){
              counter++;
            }else{
              flag[3] = 1;
            }
            break;
          case 4:
            if(str[i] == 'n'){
              counter++;
            }else{
              flag[4] = 1;
            }
            break;
          case 5:
            if(str[i] == 'c'){
              counter++;
            }else{
              flag[5] = 1;
            }
            break;
          case 6:
            if(str[i] == 'e'){
              counter++;
              is_end = 1;
            }else{
              flag[6] = 1;
            }
            break;
          case 7:
            flag[7] = 1;
        }
      }
     
      if(is_end == 1){
        int count = 0;
        for(int i = 0;i<7;i++){
          if(flag[i]){
            count++;
          }
        }
        if(count == 0 || count == 1){
          printf("YES\n");
          return 0;
        }
      }
      printf("NO\n");
      return 0;
    }