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 Kotlin (1.0.0) (judge verdict: Wrong Answer)

import kotlin.properties.Delegates

val keyence = arrayOf('k', 'e', 'y', 'e', 'n', 'c', 'e')
var input: String =""

fun main(args: Array<String>){
    input = readLine()!!
    if(input[0] == 'k') {
        if(isFirstKeyence()){
            println("YES")
            return
        }
    }else{
        if(isLastKeyence()){
            println("YES")
            return
        }
    }
    println("NO")
}

fun isLastKeyence():Boolean {
    var keyenceLastPosition = keyence.size-1
    for(i in input.length-1 downTo 0){
        if(input[i] == keyence[keyenceLastPosition]){

            if(keyenceLastPosition == 0){
                return true
            }else{
                keyenceLastPosition--
            }
        }else{
            return false
        }
    }
    return false
}

fun isFirstKeyence(): Boolean {
    var keyencePosition = 0
    var keyenceLastPosition = keyence.size-1
    var inputMidPosition = 0
    for(i in 0 until input.length){
        if(input[i] == keyence[keyencePosition]){
            if(keyencePosition == keyence.size-1){
                return true
            }else{
                keyencePosition++
            }
        }else{
            inputMidPosition = i
            break
        }
    }
    for(i in input.length-1 downTo inputMidPosition+1){
        if(input[i] == keyence[keyenceLastPosition]){
            keyenceLastPosition--
            if(keyenceLastPosition == keyencePosition){
                return true
            }
        }else{
            return false
        }
    }
    return false
}