https://coderun.yandex.ru/problem/calc-expression Легкая

Решение

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main(args: Array<String>) {
    // Создаем BufferedReader для чтения ввода
    val reader = BufferedReader(InputStreamReader(System.`in`))
    // Создаем BufferedWriter для записи вывода
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    // Читаем входную строку (выражение)
    val s = reader.readLine()

    // Инициализируем общий результат
    var result = 0L
    // Инициализируем текущее число, которое парсится
    var currentNumber = 0L
    // Инициализируем знак для текущего числа (1 для сложения, -1 для вычитания)
    // Начинаем с положительного знака, так как первое число всегда положительное
    var sign = 1

    // Проходим по каждому символу в строке
    for (char in s) {
        if (char.isDigit()) {
            // Если символ - цифра, обновляем текущее число
            // Умножаем текущее число на 10 и добавляем значение цифры
            currentNumber = currentNumber * 10 + (char - '0')
        } else {
            // Если символ - оператор ('+' или '-')
            // Добавляем (или вычитаем, в зависимости от знака) текущее число к результату
            result += sign * currentNumber
            // Сбрасываем текущее число для парсинга следующего
            currentNumber = 0L
            // Обновляем знак в соответствии с текущим оператором
            sign = if (char == '+') 1 else -1
        }
    }

    // После цикла нужно добавить последнее число к результату
    result += sign * currentNumber

    // Записываем итоговый результат в выходной поток
    writer.write(result.toString())

    // Закрываем ридер и врайтер
    reader.close()
    writer.close()
}