printРабочее место участника

printЗадачи

1298. Калькулятор

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая моделирует калькулятор, т.е. вводит последовательность нажатых клавиш и выводит результаты расчетов. Моделируемый калькулятор умеет работать только с целыми числами, которые по абсолютному значению меньше чем `10^10`. Калькулятор может выполнять только три арифметических действия: сложение, вычитание и умножение. Кроме клавиш +, - и *, на калькуляторе есть клавиша = и клавиши с цифрами от 0 до 9.
При включении на дисплее калькулятора появляется 0.
Нажатие цифровых клавиш означает ввод нового значения. Если число на дисплее является результатом вычислений, то экран дисплея очищается и на дисплей выводится введенная цифра. Нажатие следующей цифровой клавиши добавляет новую цифру справа к числу на дисплее, незначащие левые нули не выводятся. Нажатие цифровых клавиш игнорируется, если число на дисплее может стать больше или равно `10^10`.
Перед нажатием клавиши с арифметической операцией можно ввести первый операнд с помощью цифровых клавиш. Если первый операнд операции не был введен, то им становится число на дисплее в момент нажатия клавиши с арифметической операцией. Нажатие следующей клавиши с арифметической операцией после ввода второго операнда приводит к выполнению предыдущей арифметической операции (операции, которые были уже выполнены при нажатии клавиши =, не являются предыдущими); результат вычислений появляется на дисплее и становится первым операндом выбранной арифметической операции. Если нажать несколько арифметических клавиш подряд без ввода второго операнда, то используется только последняя нажатая арифметическая операция.
Если при вычислениях получается число, которое по абсолютному значению больше или равно `10^10`, то на дисплее появляется сообщение ERROR. Любые арифметические действия с ERROR в качестве операнда приводят к результату ERROR.
Нажатие клавиши = также приводит к выполнению предыдущей арифметической операции, и результат вычислений появляется на дисплее. Если второй операнд операции не был введен, то операндом становится число на дисплее в момент нажатия клавиши =. Если никаких арифметических клавиш не было нажато с момента последнего нажатия клавиши =, то к числу на дисплее применяется последняя выполненная арифметическая операция с тем же вторым операндом, который был использован ранее. Если никаких арифметических клавиш не было нажато с момента включения калькулятора, то результатом вычислений является число на дисплее в момент нажатия клавиши =.
Во входном файле содержится одна строка длиной от 1 до 250 символов, содержащая последовательность нажатых клавиш после включения калькулятора. Строка содержит только символы +, -, *, = и цифры от 0 до 9.
В выходной файл вывести результаты вычислений, появляющиеся на экране после нажатия клавиши =. Каждый результат нужно выводить на отдельной строке.

Пример ввода

2+2*2=-6==

Пример вывода

8
2
-4
loading