CF1474C Array Destruction

题目描述

### 题意简述 你有一个长度为 $2n$ 的无用数组 $a$ ,现在要进行一些操作将数组的所有元素清除: - 选择一个正整数 $x$。 - 选择 $a$ 数组的任意两个数使得它们的和等于 $x$,并将这两个数从 $a$ 数组中删除。 - 将 $x$ 更改为选择的两个数的最大值。 - 重复第二步直到 $a$ 数组清空。 **注意:$x$ 不能在运算过程中随意更改。** 现在请你输出通过怎样的过程使 $a$ 数组清空。

输入格式

第一行一个正整数 $t$($ 1 \leq t \leq 1000$),表示数据的组数。 接下来 $t$ 组数据。 对于每一组数据,第一行一个正整数 $n$($1 \leq n \leq 1000$),表示 $a$ 数组的长度。 第二行 $2n$ 个正整数,$a_1, a_2, \dots, a_{2n}$($1 \leq a_i \leq 10^6$)表示数组 $a$。 可以保证所有测试用例的 $n$ 的总和不超过 $1000$。

输出格式

对于每一组数据,第一行一个字符串 `YES` 或 `NO`,表示是否可以删除数组中的全部元素。 如果可以删除数组中的全部元素,第二行一个正整数 $x$,表示一开始你选择的数。 并在接下来若干行,每行两个正整数,表示每次删去的两个数。 $\text{by @UperFicial}$

说明/提示

The first test case was described in the statement. In the second and third test cases, we can show that it is impossible to throw out all elements of array $ a $ .