80分,悬赏关注:
#include <bits/stdc++.h>
using namespace std;
long long n, m, a[55], da = 0;
string s;
int main(){
scanf("%lld", &n);
for(int i = 1;i<=n;i++){
scanf("%lld", &a[i]);
}
for(int i = 2;i<=n;i++){
for(int j = 1;j<=i - 1;j++){
a[i] = max(a[i], a[j] + a[i - j]);
}
}
scanf("%lld", &m);
cin>>s;
long long t = 0;
for(int i = 0;i<=m - 1;i++){
if(t==n||s[i]>='d'){
da += a[t];
t = 0;
}
long long g = i + 1, h = i + 2;
if(i + 2<=m - 1&&s[i]=='a'&&s[g]=='b'&&s[h]=='c'){
t++;
i = h;
}else{
da += a[t];
t = 0;
}
}
printf("%lld", da + a[t]);
return 0;
}