-
Notifications
You must be signed in to change notification settings - Fork 0
/
B_Alice_Bob_Two_Teams.cpp
45 lines (44 loc) · 1.01 KB
/
B_Alice_Bob_Two_Teams.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)(x).size()
const long double EPS = 1e-14;
const int maxn = 500500;
const int mod = 1e9 + 7;
int p[maxn];
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
for(int i = 0 ; i < n ; ++i) cin >> p[i];
string s;
cin >> s;
long long sa = 0, sb = 0;
for(int i = 0 ; i < n ; ++i){
if(s[i] == 'A') sa += p[i];
else sb += p[i];
}
long long ans = sb;
long long xa = sa, xb = sb;
for(int i = 0 ; i < n ; ++i){
if(s[i] == 'A'){
sa -= p[i];
sb += p[i];
}else{
sa += p[i];
sb -= p[i];
}
if(s[n - i - 1] == 'A'){
xa -= p[n - i - 1];
xb += p[n - i - 1];
}else{
xa += p[n - i - 1];
xb -= p[n - i - 1];
}
ans = max(ans, sb);
ans = max(ans, xb);
}
cout << ans << '\n';
return 0;
}