D. Заменить на MEX
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дан массив из $$$n$$$ целых чисел от $$$0$$$ до $$$n$$$ включительно.

За одну операцию вы можете выбрать любой элемент массива и заменить его на MEX всех элементов массива (этот MEX может измениться после операции).

Например, если текущий массив равен $$$[0, 2, 2, 1, 4]$$$, то вы можете выбрать второй элемент и заменить его на MEX существующих элементов  — $$$3$$$. Массив станет равным $$$[0, 3, 2, 1, 4]$$$.

Вы должны сделать массив неубывающим, используя не более $$$2n$$$ операций.

Можно показать, что это всегда возможно. Обратите внимание, что вы не должны минимизировать количество операций. Если есть много решений, вы можете найти любое из них.

 –

Напомним, что массив $$$b[1 \ldots n]$$$ является неубывающим тогда и только тогда, когда $$$b_1 \le b_2 \le \ldots \le b_n$$$.

Напомним, что MEX массива равен наименьшему неотрицательному целому числу, которое не принадлежит массиву. Например:

  • MEX для $$$[2, 2, 1]$$$ равен $$$0$$$, поскольку $$$0$$$ не принадлежит массиву.
  • MEX для $$$[3, 1, 0, 1]$$$ равен $$$2$$$, поскольку $$$0$$$ и $$$1$$$ принадлежат массиву, а $$$2$$$  — нет.
  • MEX для $$$[0, 3, 1, 2]$$$ равен $$$4$$$, поскольку $$$0$$$, $$$1$$$, $$$2$$$ и $$$3$$$ принадлежат массиву, а $$$4$$$ — нет.

Стоит отметить, что MEX массива длины $$$n$$$ всегда находится между $$$0$$$ и $$$n$$$ включительно.

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

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

Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$3 \le n \le 1000$$$) — длину массива.

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

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$1000$$$.

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

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

Первая строка должна содержать одно целое число $$$k$$$ ($$$0 \le k \le 2n$$$)  — количество операций, которые вы выполняете.

Вторая строка должна содержать $$$k$$$ целых чисел $$$x_1, \ldots, x_k$$$ ($$$1 \le x_i \le n$$$), где $$$x_i$$$  — индекс элемента, с котором вы выполняете операцию $$$i$$$.

Если есть много решений, вы можете найти любое из них. Пожалуйста, помните, что минимизировать $$$k$$$ не требуется.

Пример
Входные данные
5
3
2 2 3
3
2 1 0
7
0 7 3 1 3 7 7
9
2 0 1 1 2 4 4 2 0
9
8 4 7 6 1 2 3 0 5
Выходные данные
0

2
3 1
4
2 5 5 4
11
3 8 9 7 8 5 9 6 4 1 2
10
1 8 1 9 5 2 4 6 3 7
Примечание

В первом наборе входных данных массив уже не убывает ($$$2 \le 2 \le 3$$$).

Объяснение второго набора входных данных (элемент, изменяемый каждой операцией, окрашен красным):

  • $$$a = [2, 1, 0]$$$ ; начальный MEX равен $$$3$$$.
  • $$$a = [2, 1, \color{red}{3}]$$$ ; новый MEX равен $$$0$$$.
  • $$$a = [\color{red}{0}, 1, 3]$$$ ; новый MEX равен $$$2$$$.
  • Итоговый массив неубывающий: $$$0 \le 1 \le 3$$$.

Объяснение третьего набора входных данных:

  • $$$a = [0, 7, 3, 1, 3, 7, 7]$$$ ; начальный MEX равен $$$2$$$.
  • $$$a = [0, \color{red}{2}, 3, 1, 3, 7, 7]$$$ ; новый MEX равен $$$4$$$.
  • $$$a = [0, 2, 3, 1, \color{red}{4}, 7, 7]$$$ ; новый MEX равен $$$5$$$.
  • $$$a = [0, 2, 3, 1, \color{red}{5}, 7, 7]$$$ ; новый MEX равен $$$4$$$.
  • $$$a = [0, 2, 3, \color{red}{4}, 5, 7, 7]$$$ ; новый MEX равен $$$1$$$.
  • Итоговый массив неубывающий: $$$0 \le 2 \le 3 \le 4 \le 5 \le 7 \le 7$$$.