A. Ориентированное увеличение
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У нас есть массив длиной $$$n$$$. Изначально каждый элемент равен $$$0$$$, а на первом элементе находится указатель.

Мы можем выполнять следующие два вида операций любое количество раз (возможно, нулевое) в любом порядке:

  1. Если указатель находится не на последнем элементе, увеличьте элемент, на котором находится указатель, на $$$1$$$. Затем переместите его на следующий элемент.
  2. Если указатель не находится на первом элементе, уменьшите элемент, на котором находится указатель, на $$$1$$$. Затем переместите его на предыдущий элемент.

Но есть одно дополнительное правило. После того, как мы закончим, указатель должен находиться на первом элементе.

Вам дан массив $$$a$$$. Определите, можно ли получить $$$a$$$ после некоторых операций или нет.

Входные данные

Первая строка содержит одно целое число $$$t$$$ $$$(1\le t\le 1000)$$$  — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ $$$(1\le n\le 2 \cdot 10^5)$$$  — размер массива $$$a$$$.

Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$-10^9 \le a_i \le 10^9$$$) — элементы массива.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

Выходные данные

Для каждого набора входных данных выведите «Yes» (без кавычек), если после некоторых операций можно получить $$$a$$$, и «No» (без кавычек) в противном случае.

Вы можете выводить «Yes» и «No» в любом регистре (например, строки «yEs», «yes», «Yes» будут распознаны как положительный ответ).

Пример
Входные данные
7
2
1 0
4
2 -1 -1 0
4
1 -4 3 0
4
1 -1 1 -1
5
1 2 3 4 -10
7
2 -1 1 -2 0 0 0
1
0
Выходные данные
No
Yes
No
No
Yes
Yes
Yes
Примечание

В первом наборе входных данных мы можем получить массив после некоторых операций, но указатель не будет находиться на первом элементе.

Один из способов получения массива во втором наборе входных данных показан ниже.

$$$\langle \underline{0}, 0, 0, 0\rangle \to \langle 1, \underline{0}, 0, 0 \rangle \to \langle \underline{1}, -1, 0, 0\rangle \to \langle 2, \underline{-1}, 0, 0\rangle \to \langle 2, 0, \underline{0}, 0\rangle \to \langle 2, \underline{0}, -1, 0\rangle \to \langle \underline{2}, -1, -1, 0\rangle$$$