#CF2044D. Harder Problem

    ID: 6927 传统题 1000ms 256MiB 尝试: 1 已通过: 0 难度: 10 上传者: 标签>构造贪心数学CodeforcesCodeforces Round 993(Div4)Div4DCF2044D1100

Harder Problem

题目描述

给定一个正整数序列,若一个正整数在该序列中出现最多次,则称其为该序列的众数( mode )。例如,序列 [2,2,3][2,2,3] 的众数为 22998877 的任意一个都可以被认为是序列 [9,9,8,8,7,7][9,9,8,8,7,7] 的众数。

你给了 UFO 一个长度为 nn 的数组 aa 。为了感谢你, UFO 决定构造一个长度也为 nn 的数组 bb ,使得对于所有 1in1 \leq i \leq naia_i 是序列 [b1,b2,,bi][b_1, b_2, …, b_i] 的众数。

然而, UFO 不知道怎么构造数组 b ,因此你需要帮助她。注意:构造的数组 b 中的元素 bib_i 需满足 1bin1 \leq b_i \leq n

输入格式

第一行包含一个正整数 t(1t104)t (1 \leq t \leq 10^4),代表测试样例数量。

每组测试样例包括两行:

第一行包含一个整数 n(1n2105)n (1 \leq n \leq 2 \cdot 10^5) ,代表 aa 的长度。

第二行包含 n 个整数 a1,a2,,an(1ain)a_1, a_2, \ldots, a_n (1 \leq a_i \leq n)

保证所有测试用例的 nn 总和不超过 21052 \cdot 10^5

输出格式

对于每组测试样例,在新的一行 n 个数字 b1,b2,,bn(1bin)b_1, b_2, \ldots, b_n (1 \leq b_i \leq n ) 。可以证明数组 bb 总是可以构造出来。如果有多个解,输出任意一个。

样例

4
2
1 2
4
1 1 1 2
8
4 5 5 5 1 1 2 1
10
1 1 2 2 1 1 3 3 1 1
1 2
1 1 2 2
4 5 5 1 1 2 2 3
1 8 2 2 1 3 3 9 1 1

样例说明

对第 2 组测试样例正确性的证明:

  • i=1i = 1 时, 11[1][1] 唯一的众数;
  • i=2i = 2 时, 11[1,1][1, 1] 唯一的众数;
  • i=3i = 3 时, 11[1,1,2][1, 1, 2] 唯一的众数;
  • i=4i = 4 时, 1122 均为 [1,1,2,2][1, 1, 2, 2] 的众数。由于 ai=2a_i = 2 ,因此这个数组是有效的。

来源

Codeforces 2044D,英文题名 Harder Problem。