计算得分
C++ GESP真题 六级 2024.6 #1
EXY-PG-0154
时间限制:1s 内存限制:512MB

题目描述

小杨想要计算由 $m$ 个小写字母组成的字符串的得分。

小杨设置了一个包含 $n$ 个正整数的计分序列 $A=[a_1,a_2,\ldots,a_n]$,如果字符串的一个子串由 $k(1\leq k \leq n)$ 个 $\texttt{abc}$ 首尾相接组成,那么能够得到分数 $a_k$,并且字符串包含的字符不能够重复计算得分,整个字符串的得分是计分子串的总和。

例如,假设 $n=3$,字符串 $\texttt{dabcabcabcabzabc}$ 的所有可能计分方式如下:

  • $\texttt{d+abc+abcabc+abz+abc}$ 或者 $\texttt{d+abcabc+abc+abz+abc}$,其中 $\texttt{d}$ 和 $\texttt{abz}$ 不计算得分,总得分为 $a_1+a_2+a_1$。
  • $\texttt{d+abc+abc+abc+abz+abc}$,总得分为 $a_1+a_1+a_1+a_1$。
  • $\texttt{d+abcabcabc+abz+abc}$,总得分为 $a_3+a_1$。

小杨想知道对于给定的字符串,最大总得分是多少。

输入格式

第一行包含一个正整数 $n$,代表计分序列 $A$ 的长度。

第二行包含 $n$ 个正整数,代表计分序列 $A$。

第三行包含一个正整数 $m$,代表字符串的长度。

第四行包含一个由 $m$ 个小写字母组成的字符串。

输出格式

输出一个整数,代表给定字符串的最大总得分。

样例说明

样例 1
输入:
3
3 1 2
13
dabcabcabcabz
输出:
9
样例解释:

最优的计分方式为 d+abc+abc+abc+abz,总得分为 $a_1​+a_1​+a_1$,共 9 分。

数据范围

对于全部数据,保证有 $1\leq n\leq 20$,$1\leq m\leq 10^5$,$1\leq a_i\leq 1000$。