#include #define rep(i,n) for (int i = 0; i < (n); ++i) #define repp(i,n,m) for (int i = m; i < (n); ++i) using namespace std; using ll = long long; const ll inf = 1e18; int main(){ int n; cin >> n; string s; cin >> s; vector ar(n); rep(i,n) cin >> ar[i]; rep(i,n) if (s[i] == 'B') ar[i] *= -1LL; vector rui(n+1,0LL); repp(i,n+1,1) rui[i] = rui[i-1] + ar[i-1]; vector ma(n+1,0LL); repp(i,n+1,1) ma[i] = max(ma[i-1],rui[i]); vector mi(n+1,0LL); repp(i,n+1,1) mi[i] = min(mi[i-1],rui[i]); ll mans = -inf; repp(i,n+1,1){ mans = max(mans,rui[i] - mi[i-1]); } ll mins = inf; repp(i,n+1,1){ mins = min(mins,rui[i] - ma[i-1]); } cout << max(abs(mans),abs(mins)) << endl; }