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# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using static System.Console;

namespace B
{
  class Program
  {
    static void Main(string[] args)
    {
      string input = ReadLine();

      string keystr = "keyence";

      bool flag = false;
      
      int allidx = input.IndexOf(keystr);
      if(allidx != -1)
        if(allidx == 0 || allidx == input.Length-7)
          flag = true;

      for(int i = 1; i<6 && !flag; i++) {
        string frontstr = keystr.Substring(0, i);
        string backstr = keystr.Substring(i, 7-i);
        int frontidx = input.IndexOf(frontstr);
        if(frontidx != 0) continue;
        int backidx = input.IndexOf(backstr, frontidx);
        if(backidx != input.Length-(7-i)) continue;
        flag = true;
        break;
        //if(frontidx == 0 && backidx == input.Length-7) {
        //  flag = true;
        //  break;
        //}
      }

      WriteLine(flag ? "YES" : "NO");
      Read();
    }
  }
}