#include <bits/stdc++.h>
using namespace std;
long long max(long long a, long long b) { return a > b ? a : b; }
int main() {
  long long a[100009], sum[100009], cum[100009];
  int t, m, n, i, j, k, sum1, sum2;
  t = 1;
  string s;
  while (t--) {
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
      scanf("%d", &a[i]);
      sum[i] = a[i];
      if (i) sum[i] += sum[i - 1];
    }
    cin >> s;
    memset(cum, 0, sizeof(cum));
    long long ans = 0LL;
    for (i = s.length() - 1; i >= 0; i--) {
      cum[i] = cum[i + 1];
      if (s[i] == '1') {
        cum[i] += a[i];
        ans += a[i];
      }
    }
    for (i = 0; i < s.length(); i++) {
      if (i && s[i] == '1') {
        ans = max(ans, sum[i - 1] + cum[i + 1]);
      }
    }
    cout << ans << "\n";
  }
  return 0;
}
