21 lines
559 B
Text
21 lines
559 B
Text
|
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)
|