521 по-китайски звучит так же, как «I love you». В этот особенный день Little S хочет подарить Little A несколько хорошо подготовленных последовательностей, чтобы напомнить о своей дружбе, скреплённой на долгие годы.
Little S подготовил массив $$$a_1, a_2, \ldots, a_n$$$. Определим массив его префиксных сумм $$$b_1, b_2, \ldots, b_n$$$, где $$$b_i = a_1 + a_2 + \ldots + a_i$$$. Также определим массив префиксных максимумов для массива $$$b$$$: $$$c_1, c_2, \ldots, c_n$$$, где $$$c_i = \max(b_1, b_2, \ldots, b_i)$$$.
Теперь массив $$$a$$$ частично потерян, но, к счастью, у Little S всё ещё есть массив $$$c$$$. Ваша задача — восстановить массив $$$a$$$ и отправить его Little A, либо сообщить, что такого массива не существует — в этом случае добрая и милая Little A тоже не расстроится.
Формально, вам дана бинарная строка $$$s$$$, частично заполненный массив $$$a$$$ и массив $$$c$$$, где:
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$).
Вторая строка каждого набора входных данных содержит бинарную строку $$$s$$$ ($$$s_i \in \{\texttt{0}, \texttt{1}\}$$$) длины $$$n$$$.
Третья строка каждого набора входных данных содержит $$$n$$$ чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$|a_i| \le 10^6$$$). Если $$$s_i = \texttt{0}$$$, то гарантируется, что $$$a_i = 0$$$.
Четвёртая строка каждого набора входных данных содержит $$$n$$$ чисел $$$c_1, c_2, \ldots, c_n$$$ ($$$|c_i| \le 2 \cdot 10^{11}$$$).
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.
Для каждого набора входных данных в первой строке выведите «Yes», если массив $$$a$$$ существует, в противном случае выведите «No». Ответ вы можете выводить в любом регистре. Так, например, «YeS», «YES», «NO», «nO» будут также приняты.
Если существует хотя бы одно решение, во второй строке выведите $$$n$$$ чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$|a_i| \leq 10^{18}$$$). Если существует несколько подходящих массивов, можете вывести любой из них.
10411101 2 -1 01 3 3 35000010 0 0 0 5-4 -4 -1 -1 -1110160011110 0 2 -3 3 -6-5 -2 0 0 0 05111101 2 0 5 01 2 2 7 62010 1-1 -160010100 0 5 0 3 03 3 4 9 13 1660001000 0 0 4 0 02 6 6 7 7 72000 04 -18111111116 1 1 2 0 5 1 96 7 8 10 10 15 16 25
Yes 1 2 -1 0 Yes -4 0 3 -6 5 No Yes -5 3 2 -3 3 -6 No No No Yes 2 4 -3 4 -100 0 No Yes 6 1 1 2 0 5 1 9
В первом наборе входных данных имеем:
В третьем наборе входных данных правильный массив $$$a$$$ должен быть равен $$$[1]$$$, поэтому решения не существует.