CF2000D Right Left Wrong
题目描述
Vlad发现了一个由 $n$ 细胞组成的条带,从左到右从 $1$ 到 $n$ 编号。在 $i$ 中,有一个正整数 $a_i$ 和一个字母 $s_i$ ,其中所有 $s_i$ 都是'L'或'R'。
Vlad邀请您尝试通过执行任意(可能为零)操作来获得最大可能的分数。
在一次操作中,您可以选择两个索引 $l$ 和 $r$ ( $1 \le l < r \le n$ ),使 $s_l$ = `L` 和 $s_r$ = `R`,并执行以下操作:
- 在当前分数基础上增加 $a_l + a_{l + 1} + \dots + a_{r - 1} + a_r$ 分;
- 将 $s_i$ 替换为`.`
- 对于所有 $l \le i \le r$ ,这意味着您不能再选择这些索引。
例如,考虑下面的strip:
| $3$ | $5$ | $1$ | $4$ | $3$ | $2$
| --- | --- | --- | --- | --- | --- |
| l | r | l | l | l | r |
您可以先选择 $l = 1$ , $r = 2$ ,并将 $3 + 5 = 8$ 添加到您的分数中。
| $3$ | $5$ | $1$ | $4$ | $3$ | $2$
| --- | --- | --- | --- | --- | --- |
|。|。| l | l | l | r |
然后选择 $l = 3$ , $r = 6$ 并将 $1 + 4 + 3 + 2 = 10$ 添加到您的分数中。
| $3$ | $5$ | $1$ | $4$ | $3$ | $2$
| --- | --- | --- | --- | --- | --- |
|。|。|。|。|。|。|
因此无法再进行其他操作,最终得分为 $18$ 。
能达到的最高分数是多少?
输入格式
输入* * * *
第一行包含一个整数 $t$ ( $1 \le t \le 10^4$ )—测试用例的数量。
每个测试用例的第一行包含一个整数 $n$ ( $2 \le n \le 2 \cdot 10^5$ )—条带的长度。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ( $1 \le a_i \le 10^5$ )——写在试纸上的数字。
每个测试用例的第三行包含一个由 $n$ 字符 `L` 和 `R` 组成的字符串 $s$ 。
可以保证所有测试用例中 $n$ 的值之和不超过 $2 \cdot 10^5$ 。
输出格式
对于每个测试用例,输出一个整数—可以得分的最大可能点数。