CF1783A.Make it Beautiful

入门

通过率:0%

时间限制:3.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

An array aa 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][6, 3, 9, 6] is ugly: the element 99 is equal to 6+36 + 3;
  • the array [5,5,7][5, 5, 7] is ugly: the element 55 (the second one) is equal to 55;
  • the array [8,4,10,14][8, 4, 10, 14] is beautiful: 8≠08 \ne 0, 4≠84 \ne 8, 10≠8+410 \ne 8 + 4, 14≠8+4+1014 \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 aa such that 1≤a1≤a2≤⋯≤an≤1001 \le a_1 \le a_2 \le \dots \le a_n \le 100. You have to reorder the elements of aa 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 aa. You are allowed to keep the array aa unchanged, if it is beautiful.

如果一个数组 aa 中至少存在一个元素,其值等于该元素之前所有元素的和,则称该数组为“丑陋的”(ugly)。若数组不是丑陋的,则称其为“美丽的”(beautiful)。

例如:

  • 数组 [6,3,9,6][6, 3, 9, 6] 是丑陋的:元素 99 等于 6+36 + 3;
  • 数组 [5,5,7][5, 5, 7] 是丑陋的:第二个元素 55 等于 55(即它前面所有元素之和,此处前面仅有一个元素 55);
  • 数组 [8,4,10,14][8, 4, 10, 14] 是美丽的:8≠08 \ne 0,4≠84 \ne 8,10≠8+410 \ne 8 + 4,14≠8+4+1014 \ne 8 + 4 + 10,因此不存在任何一个元素等于它之前所有元素的和。

给定一个数组 aa,满足 1≤a1≤a2≤⋯≤an≤1001 \le a_1 \le a_2 \le \dots \le a_n \le 100。你需要对 aa 的元素重新排序,使得所得数组是美丽的。注意:你不允许插入新元素或删除已有元素,只能改变 aa 中元素的顺序。若原数组 aa 已经是美丽的,你可以保持其不变。

输入格式

The first line contains one integer tt (1≤t≤20001 \le t \le 2000) — the number of test cases.

Each test case consists of two lines. The first line contains one integer nn (2≤n≤502 \le n \le 50). The second line contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (1≤a1≤a2≤⋯≤an≤1001 \le a_1 \le a_2 \le \dots \le a_n \le 100).

第一行包含一个整数 tt(1≤t≤20001 \le t \le 2000)—— 测试用例的数量。

每个测试用例由两行组成。第一行包含一个整数 nn(2≤n≤502 \le n \le 50)。第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤a1≤a2≤⋯≤an≤1001 \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 aa in such a way that it becomes beautiful, print NO;
  • otherwise, in the first line, print YES. In the second line, print nn integers — any beautiful array which can be obtained from aa by reordering its elements. If there are multiple such arrays, print any of them.

对于每个测试用例,按如下方式输出答案:

  • 如果无法通过重排数组 aa 的元素使其变为优美数组,则输出 NO;
  • 否则,第一行输出 YES;第二行输出 nn 个整数——即任意一个可通过重排 aa 的元素得到的优美数组。若存在多个这样的数组,输出其中任意一个即可。

输入输出样例

  • 输入#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

输入解题思路,AI测评打分。不知道怎么写?

首页