CF1497A.Meximization

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

Meximization

题目描述

给定一个整数 nn 和一个数组 a1,a2,,ana_1, a_2, \ldots, a_n。你需要重新排列数组 aa 的元素,使得所有前缀的 MEX\textbf{MEX} 之和最大。

形式化地,你需要找到一个数组 b1,b2,,bnb_1, b_2, \ldots, b_n,使得数组 aabb 的元素集合相同(即 bb 可以通过重新排列 aa 得到),并且 $\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\}) = 0MEX({0,1,2,4,5})=3\textbf{MEX}(\{0, 1, 2, 4, 5\}) = 3

输入格式

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

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

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

输出格式

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

如果有多种最优答案,可以输出任意一种。

说明/提示

在第一个测试用例中,答案的各前缀的 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} 之和的最大值。

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

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