爆0:code
AC:
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
int x=0,F=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
F=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*F;
}
void write(int x)
{
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
return;
}
const int N=1E5+5, maxn=25;
int n, l, len, a[maxn], f[N];
string s;
signed main(){
//泥嚎,写题吧骚年
n=read();
for(int i=1; i<=n; ++i)a[i]=read();
l=read(); cin>>s;
for(int i=1; i<=l; ++i)
{ f[i]=f[i-1];
for(int j=1; j<=n; ++j)
{
int k=i-j*3;
if(k<0)break;
if(s.substr(k, 3)=="abc")f[i]=max(f[i], a[j]+f[k]);
else break;
}
}
write(f[l]);
return 0;
}
请教大佬