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: Accepted)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void){
    char S[100];
    int Slen;
    char key[] = "keyence";
    int j; //Sとkeyがことなる場所
    int result=0;

    fgets(S,sizeof(S),stdin);
    Slen = strlen(S);
    //printf("%d\n",Slen);
    //for(int i=0;i<7;i++)printf("%c\n",key[i]);
   
    for(int i=0;i<Slen;i++){
        if(S[i]!=key[i]){j=i;/*printf("%d\n",j);*/break;break;}
    }
    for(int i=Slen-2;i>Slen+j-9;i--){
        if(S[i]!=key[i+8-Slen]){result++;/*printf("%d %c %c\n",i,S[i],key[i+8-Slen]);*/}
    }

    if(result==0)printf("YES\n");
    else printf("NO\n");
    return 0;
}