Дана строка, состоящая из символов 0 и/или 1. Вам нужно покрасить каждый символ этой строки в один из двух цветов: красный или синий.
Если вы покрасите $$$i$$$-й символ в красный цвет, вы получите $$$r_i$$$ монет. Если вы покрасите его в синий цвет, вы получите $$$b_i$$$ монет.
После покраски строки из нее удаляются все символы синего цвета. Затем в полученной строке подсчитывается количество инверсий (т. е. количество пар символов, в которых левый символ в паре — 1, а правый символ — 0). За каждую инверсию вы должны заплатить $$$1$$$ монету.
Какое максимальное количество монет вы можете заработать?
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных состоит из четырех строк:
Дополнительное ограничение на входные данные: сумма значений $$$n$$$ по всем наборам входных данных не превышает $$$4 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — максимальное количество монет, которое вы можете заработать.
4701000106 6 6 7 7 6 63 3 5 4 7 6 75101119 8 5 7 54 4 7 8 41001000000007 7 6 5 2 2 5 3 8 38 6 9 6 6 8 9 7 7 98010100008 7 7 7 8 7 7 84 4 4 2 1 4 4 4
43 36 76 52
Пояснения для наборов входных данных в примере из условия (синие символы подчеркнуты, красные — нет):
Название |
---|