import java.util.Scanner import java.util.regex.Pattern val pattern: Pattern = Pattern.compile("mul\\([0-9]+,[0-9]+\\)|do\\(\\)|don't\\(\\)") val scanner = Scanner(System.`in`) var sum = 0 var enabled = true while (true) { val next: String = scanner.findWithinHorizon(pattern, 0) ?: break when (next) { "do()" -> enabled = true "don't()" -> enabled = false else -> if (enabled) { sum += next.replace("mul(", "").replace(")", "").split(",").map { it.toInt() }.let { (a, b) -> a*b } } } } println(sum)