Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 2.39 KB

File metadata and controls

30 lines (19 loc) · 2.39 KB

Постфиксная запись

В постфиксной записи (или обратной польской записи) операция записывается после двух операндов. Например, сумма двух чисел A и B записывается как A B +. Запись B C + D * обозначает привычное нам (B + C) \cdot D, а запись A B C + D * + означает A + (B + C) \cdot D. Достоинство постфиксной записи в том, что она не требует скобок и дополнительных соглашений о приоритете операторов для своего чтения.

Дано выражение в обратной польской записи. Определите его значение.

Формат входного файла

В первой строке входного файла дано число N (1 \leqslant N \leqslant 10^6) -- число элементов выражения. Во второй строке содержится выражение в постфиксной записи, состоящее из N элементов. В выражении могут содержаться неотрицательные однозначные числа и операции +, , *. Каждые два соседних элемента выражения разделены ровно одним пробелом.

Формат выходного файла

Необходимо вывести значение записанного выражения. Гарантируется, что результат выражения, а также результаты всех промежуточных вычислений по модулю будут меньше, чем 2^31.

Пример

input.txt

7
8 9 + 1 7 - *

output.txt

-102

Решение

PostfixNotation.scala