House Planning
Contest: Codeforces Round 824 (Div. 2)
Difficulty rating: 2400
Tags: constructive algorithms, data structures, graph matchings, greedy

There are $$$n$$$ houses in your city arranged on an axis at points $$$h_1, h_2, \ldots, h_n$$$. You want to build a new house for yourself and consider two options where to place it: points $$$p_1$$$ and $$$p_2$$$.

As you like visiting friends, you have calculated in advance the distances from both options to all existing houses. More formally, you have calculated two arrays $$$d_1$$$, $$$d_2$$$: $$$d_{i, j} = \left|p_i - h_j\right|$$$, where $$$|x|$$$ defines the absolute value of $$$x$$$.

After a long time of inactivity you have forgotten the locations of the houses $$$h$$$ and the options $$$p_1$$$, $$$p_2$$$. But your diary still keeps two arrays — $$$d_1$$$, $$$d_2$$$, whose authenticity you doubt. Also, the values inside each array could be shuffled, so values at the same positions of $$$d_1$$$ and $$$d_2$$$ may correspond to different houses. Pay attention, that values from one array could not get to another, in other words, all values in the array $$$d_1$$$ correspond the distances from $$$p_1$$$ to the houses, and in the array $$$d_2$$$  — from $$$p_2$$$ to the houses.

Also pay attention, that the locations of the houses $$$h_i$$$ and the considered options $$$p_j$$$ could match. For example, the next locations are correct: $$$h = \{1, 0, 3, 3\}$$$, $$$p = \{1, 1\}$$$, that could correspond to already shuffled $$$d_1 = \{0, 2, 1, 2\}$$$, $$$d_2 = \{2, 2, 1, 0\}$$$.

Check whether there are locations of houses $$$h$$$ and considered points $$$p_1$$$, $$$p_2$$$, for which the founded arrays of distances would be correct. If it is possible, find appropriate locations of houses and considered options.

Input format:
The first line of the input contains a single integer $$$t$$$ ($$$1 \le t \le 10^3$$$) — the number of test cases. The description of test cases follows.

The first line of each test case contains one integer $$$n$$$ ($$$1 \le n \le 10^3$$$) — the length of arrays $$$d_1$$$, $$$d_2$$$.

The next two lines contain $$$n$$$ integers each: arrays $$$d_1$$$ and $$$d_2$$$ ($$$0 \le d_{i, j} \le 10^9$$$) respectively.

It is guaranteed that the sum of $$$n$$$ over all test cases doesn't exceed $$$2 \cdot 10^3$$$.

Output format:
For each test case, output a single line "NO" if there is no answer.

Otherwise output three lines. The first line must contain "YES". In the second line, print $$$n$$$ integers $$$h_1, h_2, \ldots, h_n$$$. In the third line print two integers $$$p_1$$$, $$$p_2$$$.

It must be satisfied that $$$0 \le h_i, p_1, p_2 \le 2 \cdot 10^9$$$. We can show that if there is an answer, then there is one satisfying these constraints.

If there are several answers, output any of them.

Constraints:
Time limit: 3.0 s
Memory limit: 256.0 MB

Note:
In the image below you can see the sample solutions. Planned houses are shown in bright colours: pink and purple. Existing houses are dim.

In test case $$$1$$$, the first planned house is located at point $$$0$$$, the second at point $$$10$$$. The existing house is located at point $$$5$$$ and is at a distance of $$$5$$$ from both planned houses.

It can be shown that there is no answer for test case $$$2$$$.

In test case $$$3$$$, the planned houses are located at points $$$33$$$ and $$$69$$$.

Note that in test case $$$4$$$, both plans are located at point $$$1$$$, where one of the existing houses is located at the same time. It is a correct placement.

Example input:
4
1
5
5
2
10 12
5 20
2
10 33
26 69
4
0 2 1 2
2 2 1 0

Example output:
YES
5 
0 10
NO
YES
0 43 
33 69
YES
1 0 3 3
1 1

Editorial:
Let's assume that considered point $$$1$$$ was to the left of considered point $$$2$$$. Let's assume that we know the distance $$$l$$$ between considered points $$$p_1$$$ and $$$p_2$$$. Let's show how to solve this problem in linear time(almost linear).
As long as there is a value greater than $$$l$$$, let's get the largest among them(let's call it $$$x$$$). Let's assume that this value is from $$$d_1$$$. It's easy to see that this point is to the right of the considered point $$$2$$$ (because the largest distances is to the point $$$1$$$). It means that we can match distance $$$x$$$ from $$$d_1$$$ to the distance $$$x - l$$$ from $$$d_2$$$.
When there is no value greater than $$$l$$$, all other houses are located between considered points. We can match them by sorting.
That is the $$$\mathcal{O}(n log(n))$$$ solution.
Let's limit possible options of $$$l$$$ with $$$\mathcal{O}(n)$$$ options. If we know that some house has distances $$$x$$$ and $$$y$$$ to considered options, then there are $$$2$$$ options of $$$l$$$: $$$x + y$$$ and $$$|x - y|$$$. Let's consider $$$2 \cdot n$$$ options $$$d_1[1] + d_2[i]$$$, $$$|d_1[1] - d_2[i]|$$$.
Complexity is $$$\mathcal{O}(n^2 log(n))$$$.