310105: CF1783A. Make it Beautiful

Memory Limit:512 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

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 ```

题目描述

An array $ a $ is called ugly if it contains at least one element which is equal to the sum of all elements before it. If the array is not ugly, it is beautiful. For example: - the array $ [6, 3, 9, 6] $ is ugly: the element $ 9 $ is equal to $ 6 + 3 $ ; - the array $ [5, 5, 7] $ is ugly: the element $ 5 $ (the second one) is equal to $ 5 $ ; - the array $ [8, 4, 10, 14] $ is beautiful: $ 8 \ne 0 $ , $ 4 \ne 8 $ , $ 10 \ne 8 + 4 $ , $ 14 \ne 8 + 4 + 10 $ , so there is no element which is equal to the sum of all elements before it. You are given an array $ a $ such that $ 1 \le a_1 \le a_2 \le \dots \le a_n \le 100 $ . You have to reorder the elements of $ a $ in such a way that the resulting array is beautiful. Note that you are not allowed to insert new elements or erase existing ones, you can only change the order of elements of $ a $ . You are allowed to keep the array $ a $ unchanged, if it is beautiful.

输入输出格式

输入格式


The first line contains one integer $ t $ ( $ 1 \le t \le 2000 $ ) — the number of test cases. Each test case consists of two lines. The first line contains one integer $ n $ ( $ 2 \le n \le 50 $ ). The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_1 \le a_2 \le \dots \le a_n \le 100 $ ).

输出格式


For each test case, print the answer as follows: - if it is impossible to reorder the elements of $ a $ in such a way that it becomes beautiful, print NO; - otherwise, in the first line, print YES. In the second line, print $ n $ integers — any beautiful array which can be obtained from $ a $ by reordering its elements. If there are multiple such arrays, print any of them.

输入输出样例

输入样例 #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

Input

题意翻译

如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是丑的。如果一个数组不是丑的,就是美的。 比如说: - 数组 $ [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 ```

Output

**题目大意:**
如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是“丑”的。如果一个数组不是“丑”的,就是“美”的。给定一个数组,你可以任意调整元素的顺序,也可以不调整,使其变成一个“美”的数组。

**输入数据格式:**
- 第一行一个整数 $ 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`` ,第二行输出调整完后的数组。如果有多个答案,输出任意一个。**题目大意:** 如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是“丑”的。如果一个数组不是“丑”的,就是“美”的。给定一个数组,你可以任意调整元素的顺序,也可以不调整,使其变成一个“美”的数组。 **输入数据格式:** - 第一行一个整数 $ 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`` ,第二行输出调整完后的数组。如果有多个答案,输出任意一个。

加入题单

算法标签: