#include <bits/stdc++.h>
using namespace std;
char namira[500010];
long long A[500010], a[500010], b[500010], a1[500010], b1[500010];
int main() {
  long long n, m, m1, m2, i;
  scanf("%I64d", &n);
  for (i = 0; i < n; i++) {
    scanf("%I64d", &A[i]);
  }
  scanf("%s", &namira);
  for (i = 0; i < n; i++) {
    if (namira[i] == 'A') {
      a[i] = A[i];
      a1[i] = A[i];
    } else {
      b[i] = A[i];
      b1[i] = A[i];
    }
  }
  for (i = 1; i < n; i++) {
    a[i] = a[i] + a[i - 1];
    b[i] = b[i] + b[i - 1];
  }
  m = b[n - 1];
  m1 = 0;
  for (i = 0; i < n; i++) {
    if ((b[n - 1] - b[i]) + a[i] > m1) m1 = (b[n - 1] - b[i]) + a[i];
  }
  for (i = n - 2; i >= 0; i--) {
    a1[i] = a1[i] + a1[i + 1];
    b1[i] = b1[i] + b1[i + 1];
  }
  m2 = 0;
  for (i = n - 1; i >= 0; i--) {
    if ((b1[0] - b1[i]) + a1[i] > m2) m2 = (b1[0] - b1[i]) + a1[i];
  }
  m = max(m, m1);
  m = max(m, m2);
  printf("%I64d", m);
  printf("\n");
  return 0;
}
