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

Задача . C. Уничтожение массива


Вы нашли бесполезный массив целых чисел \(a\) длины \(2n\). Так как он оказался Вам не нужен, Вы решили выкинуть все элементы \(a\).

Это было бы просто, но оказалось, что выкидывать числа надо, соблюдая следующие правила:

  1. Сначала Вы выбираете натуральное число \(x\).
  2. Затем Вы \(n\) раз повторите следующую операцию:
    • выбрать два числа с суммой \(x\)
    • выкинуть их из \(a\) и заменить \(x\) на максимальное из этих двух чисел.

Например, если изначально \(a = [3, 5, 1, 2]\), то Вы можете выбрать \(x = 6\) и выкинуть второе и третье число в \(a\), сумма которых равна \(5 + 1 = 6\). После этого \(x\) станет равно \(5\), а в массиве останутся числа \(3\) и \(2\), которые Вы можете выкинуть на следующей операции.

Обратите внимание, что Вы выбираете \(x\) только в начале и не можете изменить его между операциями.

Напишите программу, чтобы определить, как выбросить все элементы \(a\).

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

В первой строке задано одно целое число \(t\) (\(1 \leq t \leq 1000\)) — количество наборов входных данных. Далее следуют описания самих наборов.

В первой строке каждого набора задано одно целое число \(n\) (\(1 \leq n \leq 1000\)).

Во второй строке каждого набора задано \(2n\) натуральных чисел \(a_1, a_2, \dots, a_{2n}\) (\(1 \leq a_i \leq 10^6\)) — изначальный массив \(a\).

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

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

Для каждого набора входных данных в первой строке выведите YES если возможно выкинуть все элементы массива. Иначе выведите NO.

Если Вы вывели YES в следующей строке выведите значение \(x\), которое Вы выбираете в начале. В следующих \(n\) строках выведите по два числа — числа, которые Вы выбираете на очередной операции.

Примечание

Первый набор входных данных был описан в условии.

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


Примеры
Входные данныеВыходные данные
1 4
2
3 5 1 2
3
1 1 8 8 64 64
2
1 1 2 4
5
1 2 3 4 5 6 7 14 3 11
YES
6
1 5
2 3
NO
NO
YES
21
14 7
3 11
5 6
2 4
3 1

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

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