CF1783A.Make it Beautiful

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Make it Beautiful

题目描述

如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是丑的。如果一个数组不是丑的,就是美的。

比如说:

  • 数组 [6,3,9,6] [6, 3, 9, 6] 是丑的,因为 9=6+39 = 6 + 3
  • 数组 [5,5,7] [5, 5, 7] 是丑的,因为第二个 5=55 = 5
  • 数组 [8,4,10,14] [8, 4, 10, 14] 是美的,因为 80 8 \ne 0 , 48 4 \ne 8 , 108+4 10 \ne 8 + 4 , 148+4+10 14 \ne 8 + 4 + 10 ,没有任何一个数等于它前面的数之和。

给定数组 aa 满足 1a1a2an100 1 \le a_1 \le a_2 \le \dots \le a_n \le 100 。 你可以任意调整元素的顺序,也可以不调整,使它变成一个美的数组。

输入格式

第一行一个整数 t t ( 1t2000 1 \le t \le 2000 ) ,表示测试点数量。

每个测试点有两行的输入。第一行一个整数 n n ( 2n50 2 \le n \le 50 )。 第二行有 n n 个数 a1,a2,,an a_1, a_2, \dots, a_n ( 1a1a2an100 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

样例

4
4
3 3 6 6
2
10 10
5
1 2 3 4 5
3
1 4 4
YES
3 6 3 6
NO
YES
2 4 1 5 3
YES
1 4 4

在线编程 IDE

建议全屏模式获得最佳体验