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

Задача . B. Самое маленькое число


Задача

Темы: Перебор *1600

В очередной раз получив кол по алгебре, Володя решил поупражняться в арифметике. Для этого он выписал на доску четыре целых числа a, b, c, d и в течение трех минут каждую минуту заменял какие-то два числа (не обязательно соседних) на доске на их сумму или произведение. В итоге он получил одно число, но из-за плохой памяти забыл какое. Несмотря на это, Володя помнит исходные числа, последовательность произведенных им операций, а также свое удивление от того, насколько маленьким получился результат. Помогите Володе вспомнить забытое число: определите, какое минимальное число можно получить из данных чисел данными операциями.

Входные данные

Первая строка содержит четыре целых числа, разделенные пробелом: 0 ≤ a, b, c, d ≤ 1000 — числа, выписанные Володей. Вторая строка содержит последовательность из трех символов "+" и "*", разделенных пробелом — операции в том порядке, в котором их производил Володя. ("+" соответствует сложению, "*" — умножению.)

Выходные данные

Выведите единственное целое число — минимальное число, которое Володя мог получить.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать поток cin (также вы можете использовать спецификатор %I64d).


Примеры
Входные данныеВыходные данные
1 1 1 1 1
+ + *
3
2 2 2 2 2
* * +
8
3 1 2 3 4
* + +
9

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

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