Files
CodeObject/storage/sungkohan/kt/completed/2025-div2-B.kt
2025-09-01 16:26:33 +09:00

29 lines
880 B
Kotlin

fun getMaximumEfficientModules(modules: List<Long>): List<Int> {
val sortedModules = modules.withIndex().sortedBy { it.value }
var maxEff = sortedModules[modules.size - 1].value * 3
var curEff = maxEff
var maxBound = modules.size - 1
for (i in modules.size - 2 downTo 0) {
val delta = 2 * sortedModules[i].value - sortedModules[i + 1].value
curEff += delta
if(curEff > maxEff) {
maxEff = curEff
maxBound = i
}
}
return sortedModules.slice(maxBound until sortedModules.size).map {
it.index + 1
}
}
fun main() = with(System.`in`.bufferedReader()) {
this.readLine()
val modules = this.readLine().split(" ").map { it.toLong() }
getMaximumEfficientModules(modules).run {
println(this.size)
println(this.joinToString(" "))
}
}