B. Xor трех
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас есть последовательность $$$a$$$ длины $$$n$$$, состоящая из цифр $$$0$$$ и $$$1$$$.

Вы можете выполнять следующую операцию над этой последовательностью:

  • выбрать индекс $$$i$$$ от $$$1$$$ до $$$n-2$$$ (включительно);
  • одновременно заменить значения $$$a_{i}$$$, $$$a_{i+1}$$$, $$$a_{i+2}$$$ на $$$a_{i} \oplus a_{i+1} \oplus a_{i+2}$$$, где $$$\oplus$$$ обозначает операцию побитового исключающего ИЛИ.
Найдите последовательность из не более чем $$$n$$$ операций, после которой все элементы $$$a$$$ будут равны $$$0$$$, или определите, что это невозможно.

Можно показать, что если существует последовательность операций некоторой длины такая, что после ее выполнения все элементы $$$a$$$ будут равны $$$0$$$, то существует и последовательность длины не более $$$n$$$.

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

Во входных данных находятся несколько наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следуют наборы входных данных.

Первая строка набора входных данных содержит целое число $$$n$$$ ($$$3 \le n \le 2\cdot10^5$$$) — длину $$$a$$$.

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$a_i = 0$$$ или $$$a_i = 1$$$) — элементы $$$a$$$.

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

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

Для каждого набора входных данных:

  • если нет способа сделать все элементы $$$a$$$ равными $$$0$$$, выполнив описанную операцию несколько раз, выведите «NO»;
  • в противном случае в первой строке выведите «YES», во второй строке выведите $$$k$$$ ($$$0 \le k \le n$$$) — количество операций над $$$a$$$ в вашем решении, а затем в третьей строке выведите последовательность $$$b_1, b_2, \dots, b_k$$$ ($$$1 \le b_i \le n - 2$$$) — индексы, которые вы выбираете.

Если существует несколько решений, выведите любое из них.

Пример
Входные данные
3
3
0 0 0
5
1 1 1 1 0
4
1 0 0 1
Выходные данные
YES
0
YES
2
3 1
NO
Примечание

В первом примере последовательность содержит только числа $$$0$$$, поэтому ничего не нужно делать.

Во втором примере мы можем преобразовать $$$[1, 1, 1, 1, 0]$$$ в $$$[1, 1, 0, 0, 0]$$$, а затем в $$$[0, 0, 0, 0, 0]$$$, сначала выполнив операцию, начиная с третьего элемента $$$a$$$, а потом начиная с первого элемента $$$a$$$.

В третьем примере независимо от того, сделаем ли мы первую операцию, начиная с первого или второго элемента $$$a$$$, мы получим $$$[1, 1, 1, 1]$$$, что не может быть преобразовано в $$$[0, 0, 0, 0]$$$.