[BOJ 13942] Kvalitetni
View as PDFA quality arithmetic expression consists of brackets, number and operations of multiplication and addition.</p>
A quality arithmetic expression is defined recursively in the following way:
- An expression consisting of only one positive real number smaller than or equal to Z1 is of good quality.
Such expression is of the following form:
(x)
For example, if Z1 = 5, then (4) is a quality expression. - If A1 , A2 , …, Ak are quality expressions such that 2 k K and ≤ ≤ the sum of these expressions is at most Zk , then the following expressions are of good quality:
(A1+A2+...+Ak )
(A1 A2 ...*Ak )
You are given a quality expression where the numbers are replaced by question marks. Determine the maximal possible value that the expression could have had.
입력 형식
The first line of input contains integer K (2 ≤ K ≤ 50).</p>
The second line of input contains integers Z1 , …, ZK, separated by space (1 ≤ Z1 , …, ZK ≤ 50).
The third line of input contains one quality arithmetic expression in the described format. Arithmetic expression consists of: ‘?’, ‘*’, ‘+’, ‘(‘, ‘)’, and its length is 1 000 000 characters, at most.
출력 형식
You must output the maximal possible value of the expression.</p>
A solution is considered correct if the absolute or relative deviation from the official solution is less than 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
힌트
The expression ((3)+(3)) satisfies the conditions, so it is a quality expression, and it is easy to check that 6 is the maximal value.
Comments