题解:CF2011C Split the Expression
我们先将所有的数字块拆开,然后对于非首尾的字符串依次遍历它们的每个位置,取在每个位置拆开的值的最大值即可。
代码:
fun main() {
val tc = readln().toInt()
for (tt in 0 until tc) {
val s = readln()
val a = s.split("+")
val sz = a.size
var sum = a[0].toLong() + a[sz - 1].toLong()
for (i in 1..sz - 2) {
val t = a[i]
var mx = 0L
for (j in 1..t.length - 1) {
mx = maxOf(mx, t.substring(0, j).toLong() + t.substring(j).toLong())
}
sum += mx
}
println(sum)
}
}

浙公网安备 33010602011771号