Определим выполнение пузырька на массиве $$$b_1, b_2, \ldots, b_m$$$ как выполнение следующего действия:
Например, если выполнить пузырёк на $$$[1, 1, 0]$$$, то массив преобразуется следующим образом: $$$[\color{red}{1, 1}, 0] \to [1, \color{red}{1, 0}] \to [1, 0, 1]$$$. Если выполнить обратный пузырёк на $$$[1, 1, 0]$$$, то массив преобразуется следующим образом: $$$[1, \color{red}{1, 0}] \to[\color{red}{1, 0}, 1] \to [0, 1, 1]$$$.
Вам дан массив $$$a_1, a_2, \ldots, a_n$$$, состоящий только из 0 и 1, и бинарная строка$$$^{\text{∗}}$$$ $$$s$$$ длины $$$n$$$. Вы выполняете $$$n$$$ операций по порядку, где $$$i$$$-я операция выполняет пузырёк на $$$a$$$, если $$$s_i = \texttt{1}$$$, и выполняет обратный пузырёк на $$$a$$$, если $$$s_i = \texttt{0}$$$. Для каждого из $$$n + 1$$$ состояний $$$a$$$ — до выполнения каких-либо операций и после каждой операции — посчитайте количество инверсий$$$^{\text{†}}$$$ в $$$a$$$.
$$$^{\text{∗}}$$$Бинарная строка — это строка, которая содержит только символы 0 и 1.
$$$^{\text{†}}$$$Инверсией в массиве $$$c$$$ длины $$$m$$$ называется пара индексов $$$i, j$$$ такая, что $$$1 \leq i \lt j \leq m$$$ и $$$c_i \gt c_j$$$.
Первая строка каждого набора входных данных содержит $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит $$$n$$$ ($$$1 \leq n \leq 5 \cdot 10^5$$$) — длину $$$a$$$ и $$$s$$$.
Вторая строка каждого набора входных данных содержит $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \leq a_i \leq 1$$$) — массив $$$a$$$.
Третья строка каждого набора входных данных содержит $$$s$$$ ($$$s_i \in \{0, 1\}$$$, $$$|s| = n$$$$$$^{\text{∗}}$$$) — бинарную строку $$$s$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$5 \cdot 10^5$$$.
$$$^{\text{∗}}$$$$$$|c|$$$ обозначает длину строки $$$c$$$.
Для каждого набора входных данных выведите $$$n + 1$$$ целых чисел, разделённых пробелами; $$$i$$$-е число обозначает количество инверсий в $$$a$$$ после выполнения первых $$$i - 1$$$ операций.
741 1 0 0101070 1 0 1 1 0 0010100140 0 1 1100111150 1 1 0 01110131 0 000061 0 1 1 0 0011000
4 2 1 0 07 4 2 0 0 0 0 00 0 0 0 00 04 2 0 0 0 02 1 0 07 4 2 1 0 0 0
В первом наборе входных данных: