CF1783A Make it Beautiful
题目描述
如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是丑的。如果一个数组不是丑的,就是美的。
比如说:
- 数组 $ [6, 3, 9, 6] $ 是丑的,因为 $9 = 6 + 3$ ;
- 数组 $ [5, 5, 7] $ 是丑的,因为第二个 $5 = 5$ 。
- 数组 $ [8, 4, 10, 14] $ 是美的,因为 $ 8 \ne 0 $ , $ 4 \ne 8 $ , $ 10 \ne 8 + 4 $ , $ 14 \ne 8 + 4 + 10 $ ,没有任何一个数等于它前面的数之和。
给定数组 $a$ 满足 $ 1 \le a_1 \le a_2 \le \dots \le a_n \le 100 $ 。 你可以任意调整元素的顺序,也可以不调整,使它变成一个美的数组。
输入格式
第一行一个整数 $ t $ ( $ 1 \le t \le 2000 $ ) ,表示测试点数量。
每个测试点有两行的输入。第一行一个整数 $ n $ ( $ 2 \le n \le 50 $ )。 第二行有 $ n $ 个数 $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_1 \le a_2 \le \dots \le a_n \le 100 $ )。
输出格式
对于每一个测试点,按如下方式输出:
- 如果没办法使数组变成美的,输出 ``NO`` 。
- 否则在第一行输出一个 ``YES`` ,第二行输出调整完后的数组。如果有多个答案,输出任意一个。
### 样例 #1
#### 样例输入 #1
```
4
4
3 3 6 6
2
10 10
5
1 2 3 4 5
3
1 4 4
```
#### 样例输出 #1
```
YES
3 6 3 6
NO
YES
2 4 1 5 3
YES
1 4 4
```