Codeforces Round 966 (Div. 3) |
---|
Закончено |
Влад нашёл полоску из $$$n$$$ клеток, пронумерованных слева направо от $$$1$$$ до $$$n$$$. На $$$i$$$-й клетке записаны положительное целое число $$$a_i$$$ и буква $$$s_i$$$, все $$$s_i$$$ равны либо 'L' либо 'R'.
Влад предлагает вам попробовать набрать максимально возможное количество очков, сделав любое (возможно нулевое) количество операций.
За одну операцию вы можете выбрать два индекса $$$l$$$ и $$$r$$$ ($$$1 \le l < r \le n$$$), такие что $$$s_l$$$ = 'L' и $$$s_r$$$ = 'R' и сделать следующее:
Для примера рассмотрим следующую полоску:
$$$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$$$) — числа, записанные на полоске.
Третья строка каждого набора содержит строку $$$s$$$ из $$$n$$$ символов 'L' и 'R'.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — максимальное возможное количество очков, которое можно набрать.
463 5 1 4 3 2LRLLLR22 8LR23 9RL51 2 3 4 5LRLRR
18 10 0 22
Название |
---|