fun main(arr:Array) { val susiCount = readLine()!!.toInt() susiList.addAll(readLine()!!.split(" ").map { it.toInt() }) susiList.indices.forEach { getAns(it) } println(getAns(susiList.lastIndex)) } val susiList = mutableListOf() val dic = mutableMapOf() fun getAns(idx:Int):Int { if(idx == 0) { return susiList[0] } if(idx == 1) { return susiList.take(2).max()!! } dic[idx]?.let { return it } var ans = getAns(idx - 1) ans = Math.max(getAns(idx-2) + susiList[idx], ans) dic[idx] = ans return ans }