#P1197. 覆盖

覆盖

题目描述

对于一个长为 mm 的序列 {bi}\{b_i\},我们称 xx 是这个序列的 主元,当且仅当 xx 在 {bi}\{b_i\} 中出现了至少 ⌊m2⌋+1\lfloor\frac m2\rfloor +1 次。例如:[1,1,4][1,1,4] 的主元是 11,[1,3,1,3,3,3][1,3,1,3,3,3] 的主元是 33,[1,9,1,9][1,9,1,9] 和 [5,4,3,2,1][5,4,3,2,1] 没有主元。

给定一个长为 nn 的序列 {ai}\{a_i\},每次操作可以选择一个 存在主元 的子段 a[l…r]a[l\ldots r],然后将整个 a[l…r]a[l\ldots r] 都赋值为这个主元。

你可以进行 00 次或任意多次操作。求可以获得的字典序最小的序列。

输入格式

第一行一个正整数 TT,代表数据组数。接下来 TT 组数据,每组数据的格式如下:

  • 第一行一个正整数 nn,代表序列长度;
  • 接下来一行 nn 个整数,代表序列 [a1,a2,…,an][a_1,a_2,\ldots,a_n]。

输出格式

对于每组数据,输出一行 nn 个整数,代表可以获得的字典序最小的序列。

3
4
2 1 1 2
6
3 4 1 3 2 6
7
4 3 3 4 3 2 5
1 1 1 1
3 4 1 3 2 6
3 3 3 3 3 2 5

数据范围

  • 对于 30%30\% 的数据,1≤T≤101 \le T \le 10,1≤n≤201 \le n \le 20;
  • 对于另外 30%30\% 的数据,ai≤2a_i \le 2;
  • 对于 100%100\% 的数据,1≤T≤1051 \le T \le 10^5,1≤n,∑n≤2⋅1051 \le n,\sum n \le 2 \cdot 10^5,1≤ai≤n1 \le a_i \le n。