#agc059b. [agc059_b]Arrange Your Balls

[agc059_b]Arrange Your Balls

题目描述

你有 NN 个颜色为 C1,C2,,CNC_1, C_2, \ldots, C_N 的球。这里,所有的颜色都用 11NN 之间的整数表示。你想把这些球排列在一个圆上。排列完成后,你将计算颜色对 (X,Y)(X, Y) 的数量,其中 X<YX < Y 并且存在两个相邻的球的颜色分别为 XXYY

找到一种最小化这样的颜色对数量的排列。如果有多种排列方式,任意一种都可以。

例如,对于颜色为 1,1,2,31, 1, 2, 3 的球,如果我们将它们排列为 1,1,2,31, 1, 2, 3,我们会得到 33 对颜色:(1,2),(2,3),(1,3)(1, 2), (2, 3), (1, 3)。如果我们将它们排列为 1,2,1,31, 2, 1, 3,我们只会得到 22 对颜色:(1,2),(1,3)(1, 2), (1, 3)

解决每个输入文件的 TT 个测试用例。

约束条件

  • 1T51041 \le T \le 5 \cdot 10^4
  • 3N21053 \le N \le 2 \cdot 10^5
  • 1CiN1 \le C_i \le N
  • 一个输入文件中 NN 的总和不超过 21052\cdot 10^5
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

TT case1case_1 case2case_2 \vdots caseTcase_T

每个测试用例都以以下格式给出:

NN C1C_1 C2C_2 \ldots CNC_N

输出

对于每个测试用例,将答案以以下格式输出:

A1A_1 A2A_2 \ldots ANA_N

这里,AiA_i 是在你的排列中圆上第 ii 个球的颜色(顺时针)。

(A1,A2,,AN)(A_1, A_2, \ldots, A_N) 应该是 (C1,C2,,CN)(C_1, C_2, \ldots, C_N) 的一个排列,并且颜色对 (X,Y)(X, Y) 的数量,其中 X<YX < Y 并且存在两个相邻的球的颜色分别为 XXYY,应该最小化。

如果有多个解决方案,任何一个都将被接受。


样例输入 1

3
3
1 2 3
4
1 2 1 3
5
2 2 5 3 3

样例输出 1

1 2 3 
2 1 3 1 
3 3 2 5 2