Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.Stack
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
// Считываем выражение в постфиксной записи и разбиваем на токены
val tokens = reader.readLine().trim().split(" ")
val stack = Stack<Int>()
for (token in tokens) {
when (token) {
// Если токен - оператор, выполняем операцию над двумя последними элементами стека
"+", "-", "*" -> {
val b = stack.pop()
val a = stack.pop()
stack.push(
when (token) {
"+" -> a + b
"-" -> a - b
else -> a * b
}
)
}
// Если токен - число, добавляем его в стек
else -> stack.push(token.toInt())
}
}
// Выводим результат вычисления
writer.write(stack.pop().toString())
reader.close()
writer.close()
}