Codeforces Round 800 (Div. 1) |
---|
Закончено |
У нас есть массив длиной $$$n$$$. Изначально каждый элемент равен $$$0$$$, а на первом элементе находится указатель.
Мы можем выполнять следующие два вида операций любое количество раз (возможно, нулевое) в любом порядке:
Но есть одно дополнительное правило. После того, как мы закончим, указатель должен находиться на первом элементе.
Вам дан массив $$$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$$$
Название |
---|