Решение
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.BufferedWriter
import java.io.OutputStreamWriter
import kotlin.math.min
fun main(args: Array<String>) {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val n = reader.readLine()!!.toInt()
if (n == 0) {
writer.write("0\\n")
writer.close()
reader.close()
return
}
val a = IntArray(n + 1)
val b = IntArray(n + 1)
val c = IntArray(n + 1)
for (i in 1..n) {
val parts = reader.readLine()!!.trim().split(" ").map { it.toInt() }
a[i] = parts[0]
b[i] = parts[1]
c[i] = parts[2]
}
val dp = LongArray(n + 1)
dp[0] = 0L
for (i in 1..n) {
dp[i] = dp[i - 1] + a[i]
if (i >= 2) {
val timeOption2 = dp[i - 2] + b[i - 1]
dp[i] = min(dp[i], timeOption2)
}
if (i >= 3) {
val timeOption3 = dp[i - 3] + c[i - 2]
dp[i] = min(dp[i], timeOption3)
}
}
writer.write(dp[n].toString())
writer.newLine()
reader.close()
writer.close()
}