Valera has array a , consisting of n integers a 0, a 1, ..., a n - 1 , and function f(x), taking an integer from 0 to 2 n - 1 as its single argument. Value f(x) is calculated by formula , where value bit(i) equals one if the binary representation of number x contains a 1 on the i -th position, and zero otherwise. For example, if n = 4 and x = 11 (11 = 20 + 21 + 23), then f(x) = a 0 + a 1 + a 3 . Help Valera find the maximum of function f(x) among all x , for which an inequality holds: 0 ≤ x ≤ m .
输入描述:
The first line contains integer n(1 ≤ n ≤ 105) — the number of array elements. The next line contains n space-separated integers a0, a1, ..., an - 1(0 ≤ ai ≤ 104) — elements of array a.The third line contains a sequence of digits zero and one without spaces s0s1... sn - 1 — the binary representation of number m. Number m equals .
输出描述:
Print a single integer — the maximum value of function f(x) for all .
示例1
输入
2<br />3 8<br />10<br />5<br />17 0 10 2 1<br />11010<br />
备注:
In the first test case m = 20 = 1, f(0) = 0, f(1) = a0 = 3.In the second sample m = 20 + 21 + 23 = 11, the maximum value of function equals f(5) = a0 + a2 = 17 + 10 = 27.
加载中...