#include <bits/stdc++.h>
using namespace std;
const int MXN = 100100;
int a[MXN];
char s[MXN];
int sum[MXN];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < (n); i++) {
    scanf("%d", &a[n - 1 - i]);
  }
  scanf("%s", s);
  reverse(s, s + n);
  sum[n - 1] = a[n - 1];
  for (int i = 1; i < int(n); i++) {
    sum[n - 1 - i] = sum[n - i] + a[n - 1 - i];
  }
  long long cur = 0;
  long long mx = 0;
  for (int i = 0; i < (n); i++) {
    if (s[i] == '1') {
      mx = max(mx, cur + sum[i + 1]);
    }
    cur += (s[i] - '0') * a[i];
  }
  cout << max(mx, cur) << endl;
  return 0;
}
