package yukicoder fun main() { val (n, m) = readLine()!!.split(" ").map(String::toInt) val scores = mutableSetOf>() (0 until m).forEach { val (item1, item2, score) = readLine()!!.split(" ").map(String::toInt) scores.add(Triple(item1, item2, score)) } fun getScore(items: IntArray): Int = scores.filter { items.indexOf(it.first) < items.indexOf(it.second) }.sumBy { it.third } fun getMaxScore(vararg items: Int): Int { return when (items.size >= n) { true -> getScore(items) false -> (0..n).filter { !items.contains(it) }.map { getMaxScore(*items, it) }.max()!! } } println(getMaxScore()) }