#include <bits/stdc++.h>
using namespace std;
int n,m,a[25],f[25];
string s;
vector<int> v;
void init_v(){
int i=0,tmp=0;
while(i<m){
if(s[i]=='c'&&s[i-1]=='b'&&s[i-2]=='a')++tmp,i+=3;
else{
if(tmp){
v.push_back(tmp);
tmp=0;
}
++i;
}
}
if(tmp)v.push_back(tmp);
return;
}
void init_f(){
f[1]=a[1];
for(int i=1;i<=n;++i)for(int j=0;j<=n/2;++j)f[i]=max(f[i],f[j]+f[i-j]);
}
int main(){
cin>>n;
for(int i=1;i<=n;++i)cin>>a[i];
cin>>m>>s;
init_v();
init_f();
int ans=0;
for(int x:v)ans+=f[x];
cout<<ans<<endl;
return 0;
}
基本思路就是先计算所有最长abc字串的长度,然后再算每个长度为i的字串最大得分f[i],最后再把所有的加起来