P6884 [COCI 2016/2017 #3] Kvalitetni
题目描述
定义一个算术表达式是有质量的,当且仅当这个算术表达式只由括号,数字,乘法符号和加法符号组成。
一个有质量的算术表达式由下列方式递归定义:
- 仅包含一个正实数**小于等于** $Z_1$。这种表达形式如下:
$$(x)$$
例如当 $Z_1=5$,那么 $(4)$ 就是有质量的算术表达式。
- 如果 $A_1,A_2,\cdots,A_k(2\le k\le K)$ 都是有质量的算术表达式,并且这些有质量的算术表达式的和**小于等于** $Z_k$,那么
$$(A_1+A_2+\cdots+A_k)$$
$$(A_1*A_2*\cdots*A_k)$$
也是有质量的算术表达式。
你会得到一条**所有数字都被问号代替**的算术表达式,求满足这个表达式是有质量的算术表达式的前提下,这个表达式可能的最大值。
输入格式
第一行包含一个正整数 $K$。
第二行包含 $K$ 个被空格隔开的正整数,表示 $Z_1,Z_2,\cdots,Z_K$。
第三行包含了一个所有数字被 `?` 代替的算术质量表达式。这个表达式只包含 `?`,`+`,`*`,`(`,`)`。
输出格式
**本题采用 Special Judge**。
你需要输出这个表达式的最大值。
你的解被接受当且仅当你的输出和标准答案的绝对值 $\le 10^{-3}$。
说明/提示
#### 样例 1 解释
表达式 $((3)+(3))$ 满足条件,因此它是一个算术表达式。容易证明,$6$ 是这个表达式的最大值。
#### 样例 2 解释
对于表达式 $(((1)+(2))*(2))$ 可以达到最大值。
#### 样例 3 解释
对于表达式 $((2)*(2)*(2))$ 可以得到最大值。
### 数据规模与约定
对于 $100\%$ 的数据,满足 $2\le K\le 50,1\le Z_i\le 50$,表达式的长度 $\le 10^6$。
### 说明
**题目译自 [COCI2016-2017](https://hsin.hr/coci/archive/2016_2017/) [CONTEST #3](https://hsin.hr/coci/archive/2016_2017/contest3_tasks.pdf) _T4 Kvalitetni_**。