Zdravím,
zkusil jsem si "zKotlinovat" tuhle úlohu:
https://code.dcoder.tech/question/5b1bd177d9432b981bd826d1a pro dva testCase mi to nevychází. Otestoval jsem různé krajní případy... podle mého pochopení zadání je to OK, podle testovače ne. Možná Vás někoho napadne, kde dělám chybu...?
data class State(val road: List<Int>, val place: Int,val howFarToSee: Int)
fun howManyISee(myState: State): Int {
val howFar: Int = myState.place + myState.howFarToSee
if (myState.road.size < howFar) return -1
val view: List<Int> = myState.road.subList(myState.place, howFar)
return view.toSet().size
}
fun main(args: Array<String>) {
val nCases: Int = readLine()!!.toInt()
for (i in 1..nCases) {
val howFarWeSee: Int = readLine()!!.split(" ").map {el -> el.toInt()}.last()
val road: List<Int> = readLine()!!.split(" ").map{el -> el.toInt()}
val listForRestult: List<Int> = List<Int>(road.size - howFarWeSee + 1 ){it}
val result: List<Int> = listForRestult.map{position -> howManyISee(State(road, position, howFarWeSee ))}
println(result.joinToString(" "))
}
}