Олимпиадный тренинг

Задача . Обратная польская нотация


Задача

Темы:
Обратная польская нотация (ОПН) – использующаяся в некоторых языках программирования форма записи
математических выражений, в которой операнды расположены перед знаками операций.
Запись и вычисление выражения в ОПН устроены следующим образом:
-  Выражение является последовательностью операндов и знаков операций.
-  Выражение читается слева направо.
-  Если в выражении встречается операнд, он заносится в стек операндов.
-  Если в выражении встречается знак операции, выполняется соответствующая операция над двумя последними
операндами в стеке и эти два операнда заменяются на результат вычисления операции.
-  Результатом вычисления выражения становится результат последней вычисленной операции.

Пример вычисления выражения: 7 2 3 + - 4 *
Шаг Текущее выражение Стек операндов
1 7 2 3 + - 4 * 7
2 2 3 + - 4 * 7 2
3 3 + - 4 * 7 2 3
4 + - 4 * 7 5
5 - 4 * 2
6 4 * 2 4
7 * 8
 
Дано выражение, записанное в ОПН:
2 4 4 #1 #2 8 1 #1 #3

За символами “#1”, “#2” и “#3” скрываются операции сложения, вычитания и умножения (в выражении присутствую все три операции), но неизвестно, какая операция соответствует какому символу. Подберите такой вариант соответствия символов операциям, при котором значение вычисленного выражения будет максимальным, и вычислите это значение. В ответе укажите целое число.

time 1000 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя