QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 64 MB 満点: 120

#13723. 优质表达式

統計

一个优质算术表达式由括号、数字以及乘法和加法运算组成。

一个优质算术表达式按以下方式递归定义:

  • 仅由一个小于或等于 $Z_1$ 的正实数组成的表达式是优质的。 这种表达式的形式如下: $$(x)$$ 例如,如果 $Z_1 = 5$,那么 $(4)$ 是一个优质表达式。
  • 如果 $A_1, A_2, \dots, A_k$ 是优质表达式,满足 $2 \le k \le K$ 且这些表达式的和最多为 $Z_k$,那么以下表达式也是优质的: $$(A_1+A_2+...+A_k)$$ $$(A_1*A_2*...*A_k)$$

给你一个优质表达式,其中数字被问号(?)代替。 确定该表达式可能具有的最大值。

输入格式

第一行包含整数 $K$ ($2 \le K \le 50$)。

第二行包含整数 $Z_1, \dots, Z_K$,用空格分隔 ($1 \le Z_1, \dots, Z_K \le 50$)。

第三行包含一个符合上述格式的优质算术表达式。 算术表达式由 '?', '*', '+', '(', ')' 组成,其长度最多为 $1\,000\,000$ 个字符。

输出格式

输出该表达式的最大可能值。

如果你的答案与官方答案的绝对或相对误差小于 $10^{-3}$,则被认为是正确的。

样例

输入样例 1

2
10 6
((?)+(?))

输出样例 1

6.00000

输入样例 2

3
2 5 3
(((?)+(?))*(?))

输出样例 2

6.00000

输入样例 3

3
2 10 6
((?)*(?)*(?))

输出样例 3

8.000000000

说明

第一个样例的解释

表达式 ((3)+(3)) 满足条件,因此它是一个优质表达式,且很容易验证 $6$ 是最大值。

第二个样例的解释

例如,对于表达式 (((1)+(2))*(2)),可以达到最大值。

第三个样例的解释

例如,对于表达式 ((2)*(2)*(2)),可以达到最大值。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.