Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import kotlin.math.max
import kotlin.math.min
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val (n, a, b) = reader.readLine().split(" ").map { it.toInt() }
reader.close()
val dp = LongArray(n + 1)
dp[1] = 0
for (x in 2..n) {
var best = Long.MAX_VALUE
for (k in 1 until x) {
val costYes = a.toLong() + dp[k]
val costNo = b.toLong() + dp[x - k]
val worst = max(costYes, costNo)
if (worst < best) {
best = worst
}
}
dp[x] = best
}
writer.write(dp[n].toString())
writer.newLine()
writer.close()
}