CF1497A.Meximization

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an integer nn and an array a1,a2,…,ana_1, a_2, \ldots, a_n. You should reorder the elements of the array aa in such way that the sum of MEX\textbf{MEX} on prefixes (ii-th prefix is a1,a2,…,aia_1, a_2, \ldots, a_i) is maximized.

Formally, you should find an array b1,b2,…,bnb_1, b_2, \ldots, b_n, such that the sets of elements of arrays aa and bb are equal (it is equivalent to array bb can be found as an array aa with some reordering of its elements) and ∑i=1nMEX(b1,b2,…,bi)\sum\limits_{i=1}^{n} \textbf{MEX}(b_1, b_2, \ldots, b_i) is maximized.

MEX\textbf{MEX} of a set of nonnegative integers is the minimal nonnegative integer such that it is not in the set.

For example, MEX(1,2,3)=0\textbf{MEX}({1, 2, 3}) = 0, MEX(0,1,2,4,5)=3\textbf{MEX}({0, 1, 2, 4, 5}) = 3.

给你一个整数 nn 和一个数组 a1,a2,…,ana_1, a_2, \ldots, a_n。你需要对数组 aa 的元素进行重排,使得所有前缀(第 ii 个前缀为 a1,a2,…,aia_1, a_2, \ldots, a_i)的 MEX\textbf{MEX} 值之和最大。

形式化地说,你需要找到一个数组 b1,b2,…,bnb_1, b_2, \ldots, b_n,使得数组 aa 与 bb 的元素集合相等(即 bb 是 aa 的某种元素重排),且 ∑i=1nMEX(b1,b2,…,bi)\sum\limits_{i=1}^{n} \textbf{MEX}(b_1, b_2, \ldots, b_i) 最大。

非负整数集合的 MEX\textbf{MEX} 指的是不在该集合中的最小非负整数。

例如,MEX(1,2,3)=0\textbf{MEX}({1, 2, 3}) = 0,MEX(0,1,2,4,5)=3\textbf{MEX}({0, 1, 2, 4, 5}) = 3。

输入格式

The first line contains a single integer tt (1≤t≤100)(1 \le t \le 100) — the number of test cases.

The first line of each test case contains a single integer nn (1≤n≤100)(1 \le n \le 100).

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai≤100)(0 \le a_i \le 100).

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

每个测试用例的第一行包含一个整数 nn(1≤n≤1001 \le n \le 100)。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1000 \le a_i \le 100)。

输出格式

For each test case print an array b1,b2,…,bnb_1, b_2, \ldots, b_n — the optimal reordering of a1,a2,…,ana_1, a_2, \ldots, a_n, so the sum of MEX\textbf{MEX} on its prefixes is maximized.

If there exist multiple optimal answers you can find any.

对于每个测试用例,输出一个数组 b1,b2,…,bnb_1, b_2, \ldots, b_n —— 即 a1,a2,…,ana_1, a_2, \ldots, a_n 的一种最优重排,使得其所有前缀的 MEX\textbf{MEX} 值之和最大。

若存在多个最优解,输出任意一个即可。

输入输出样例

  • 输入#1

    3
    7
    4 2 0 1 3 3 7
    5
    2 2 8 6 9
    1
    0

    输出#1

    0 1 2 3 4 7 3 
    2 6 8 9 2 
    0

说明/提示

In the first test case in the answer MEX\textbf{MEX} for prefixes will be:

  1. MEX(0)=1\textbf{MEX}({0}) = 1
  2. MEX(0,1)=2\textbf{MEX}({0, 1}) = 2
  3. MEX(0,1,2)=3\textbf{MEX}({0, 1, 2}) = 3
  4. MEX(0,1,2,3)=4\textbf{MEX}({0, 1, 2, 3}) = 4
  5. MEX(0,1,2,3,4)=5\textbf{MEX}({0, 1, 2, 3, 4}) = 5
  6. MEX(0,1,2,3,4,7)=5\textbf{MEX}({0, 1, 2, 3, 4, 7}) = 5
  7. MEX(0,1,2,3,4,7,3)=5\textbf{MEX}({0, 1, 2, 3, 4, 7, 3}) = 5

The sum of MEX=1+2+3+4+5+5+5=25\textbf{MEX} = 1 + 2 + 3 + 4 + 5 + 5 + 5 = 25. It can be proven, that it is a maximum possible sum of MEX\textbf{MEX} on prefixes.

在第一个测试用例中,各前缀的 MEX\textbf{MEX} 值为:

  1. MEX(0)=1\textbf{MEX}({0}) = 1
  2. MEX(0,1)=2\textbf{MEX}({0, 1}) = 2
  3. MEX(0,1,2)=3\textbf{MEX}({0, 1, 2}) = 3
  4. MEX(0,1,2,3)=4\textbf{MEX}({0, 1, 2, 3}) = 4
  5. MEX(0,1,2,3,4)=5\textbf{MEX}({0, 1, 2, 3, 4}) = 5
  6. MEX(0,1,2,3,4,7)=5\textbf{MEX}({0, 1, 2, 3, 4, 7}) = 5
  7. MEX(0,1,2,3,4,7,3)=5\textbf{MEX}({0, 1, 2, 3, 4, 7, 3}) = 5

MEX\textbf{MEX} 值之和为 1+2+3+4+5+5+5=251 + 2 + 3 + 4 + 5 + 5 + 5 = 25。可以证明,这是前缀 MEX\textbf{MEX} 值之和所能达到的最大值。

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

首页