Олимпиадный тренинг

Задача . A. Омкар и плохая легенда


Омкар получил сообщение от Антона: «Ваша легенда по задаче A слишком запутанная. Просто сделайте формальное условие». В связи с этим Омкар дает вам массив \(a = [a_1, a_2, \ldots, a_n]\) из \(n\) попарно различных целых чисел. Массив \(b = [b_1, b_2, \ldots, b_k]\) называется хорошим, если для любых различных элементов \(b_i, b_j\) массива \(b\), \(|b_i-b_j|\) встречается в \(b\) хотя бы один раз. Кроме того, все элементы \(b\) должны быть попарно различными. Можете ли вы добавить несколько (возможно, \(0\)) целых чисел в \(a\), чтобы получился хороший массив \(b\) размером не более \(300\)? Если \(a\) уже хороший, вы не обязаны добавлять никаких элементов.

Например, массив \([3, 6, 9]\) является хорошим, поскольку \(|6-3|=|9-6| = 3\), встречается в массиве, и \(|9-3| = 6\), встречается в массиве, тогда как массив \([4, 2, 0, 6, 9]\) не является хорошим, поскольку \(|9-4| = 5\) не встречается в массиве.

Для целых чисел \(x\) и \(y\), \(|x-y| = x-y\), если \(x > y\) и \(|x-y| = y-x\) в противном случае.

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

Каждый тест содержит несколько наборов входных данных. Первая строка содержит \(t\) (\(1 \leq t \leq 50\)), количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число \(n\) (\(2 \leq n \leq 100\)) — длину массива \(a\).

Вторая строка каждого набора входных данных содержит \(n\) попарно различных целых чисел \(a_1, a_2, \cdots, a_n\) (\(-100 \leq a_i \leq 100\)) — элементы массива \(a\).

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

Для каждого набора входных данных выведите одну строку, содержащую YES, если Омкар может создать хороший массив \(b\) путем добавления целых чисел к \(a\) и NO в противном случае. Регистр каждой буквы не имеет значения, поэтому YEs и nO также будут приняты.

Если первая строка YES, выведите вторую строку, содержащую одно целое число \(k\) (\(n \leq k \leq 300\)).

Затем выведите одну строку, содержащую \(k\) попарно различных целых чисел \(b_1, b_2, \cdots, b_k\) (\(-10^9 \leq b_i \leq 10^9\)) — элементы хорошего массива \(b\). \(b_1, b_2, \cdots, b_k\) могут быть в любом порядке. Для каждого \(a_i\) из \(a\), \(a_i\) должно хотя бы раз встречаться в \(b\).

Можно показать, что если Омкар может создать такой массив \(b\), то он может сделать это и таким образом, чтобы удовлетворить вышеуказанным ограничениям.

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

Примечание

Для первого набора входных данных можно добавить целые числа к \(a\), чтобы получить массив \(b = [3, 0, 6, 9, 3]\). Обратите внимание, что \(|6-3| = |9-6| = |3-0| = 3\) и \(3\) встречается в \(b\), \(|6-0| = |9-3| = 6\) и \(6\) встречается в \(b\), а также \(|9-0| = 9\) встречается в \(b\), поэтому \(b\) хороший.

Для второго набора входных данных можно добавить целые числа к \(a\), чтобы получить массив \(b = [5, 3, 1, 2, 4]\). Здесь \(|2-1| = |3-2| = |4-3| = |5-4| = 1\) встречается в \(b\), \(|3-1| = |4-2| = |5-3| = 2\) встречается в \(b\), \(|4-1| = |5-2| = 3\) встречается в \(b\), и \(|5-1| = 4\) встречается в \(b\), поэтому \(b\) является хорошим.

Для четвертого набора входных данных можно добавить целые числа к \(a\), чтобы получить массив \(b = [8, 12, 6, 2, 4, 10]\). Здесь \(|4-2| = |6-4| = |8-6| = |10-8| = |12-10| = 2\) встречается в \(b\), \(|6-2| = |8-4| = |10-6| = |12-8| = 4\) встречается в \(b\), \(|8-2| = |10-4| = |12-6| = 6\) встречается в \(b\), \(|10-2| = |12-4| = 8\) встречается в \(b\), а также \(|12-2| = 10\) встречается в \(b\), поэтому \(b\) хороший.

Можно доказать, что для всех остальных наборов входных данных невозможно получить хороший массив \(b\).


Примеры
Входные данныеВыходные данные
1 4
3
3 0 9
2
3 4
5
-7 3 13 -2 8
4
4 8 12 6
yes
4
6 0 3 9
yEs
5
5 3 1 2 4
NO
Yes
6
8 12 6 2 4 10

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя