CF55B Smallest number
题目描述
最近,Vladimir 又在代数课上得了差的分数。为了避免今后再次出现这种令人不快的事情,他决定练习自己的算术能力。他在黑板上写下了四个整数 $a$、$b$、$c$、$d$。在接下来的三分钟里,他每分钟都会从黑板上任选两个数字(不一定相邻),并将它们用和或者积替换。在最后,他得到了一个数字。不幸的是,由于他记性很差,他忘记了这个数字,但他还记得最初的四个数、操作的顺序,以及他因为结果很小而感到惊讶。请帮助 Vladimir 回忆起他忘记的数字:找出通过给定的操作顺序,从原来的数中可以得到的最小结果。
输入格式
第一行包含用空格分隔的四个整数:$0 \leq a, b, c, d \leq 1000$,表示最初的四个数字。
第二行包含用空格分隔的三个符号(每个为 ‘+’ 或 ‘*’),按操作顺序给出。(‘+’ 表示加法,‘*’ 表示乘法)
输出格式
输出一个整数,表示通过给定操作顺序可以得到的最小结果。
请不要在 C++ 中使用 %lld 读取或输出 64 位整数。建议使用 cin(你也可以使用 %I64d)。
说明/提示
由 ChatGPT 5 翻译