#116. NOIP-22Y9M-03.C 移动石子

NOIP-22Y9M-03.C 移动石子

C

nn 个 石子 按从左往右的顺序排成一行,每个 石子 有一个重量和一个类型,类型分为 AB 两种。其中第 ii 个 石子 的类型为 sis_i,其重量为 wiw_i。你可以进行 nn 次操作,每次选择一个 石子 将其移走。显然,最终所有 石子 都将被移走。在这个过程中,你的得分如下:

  • 对于一次操作,假设你移走了 石子 jj
    • 如果 石子 jj 是还未移走的 石子 中最左侧或最右侧的 石子 ,则得分为 00
    • 若与 石子 jj 相邻的两个 石子 中,存在一个 石子 的类型与其相同,则得分为 00
    • 否则,得分为 wjw_j
  • 整个过程的得分为所有操作的得分之和。

你的目标是最大化最终的得分。你想要知道该得分最大为多少。

输入格式

输入的第一行包含一个整数 nn

接下来一行,包含一个长为 nn 的字符串 S=s1s2snS=s_1s_2\cdots s_n,每个字符只可能为 AB,描述该 石子 的类型。

接下来一行,包含 nn 个整数 w1,w2,,wnw_1,w_2,\cdots, w_n,描述每个 石子 的重量。

输出格式

输出一行一个整数,表示最大的得分。

样例数据

3
ABA
1 2 3
2
7
AABBABA
2 4 5 1 3 7 6
12

样例 3

见下发文件。

子任务

测试点编号 特殊限制
121 \sim 2 n3n \le 3
343 \sim 4 n8n\le 8
575 \sim 7 n20n \le 20
898 \sim 9 wi=1w_i = 1
101210 \sim 12 wi{1,2}w_i \in \{1, 2\}
131513 \sim 15 n1000n \le 1\,000
161716 \sim 17 n105n \le 10^5
1818 n3×105n \le 3 \times 10^5
192019 \sim 20 n106n \le 10^6

对于 100%100\% 的数据,1n1061 \le n \le 10^61wi1091 \le w_i \le 10^9