#P17118. F. Median Shuffle

    ID: 17257 传统题 6000ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>算法基础构造数学数据结构贪心CF22002026杭电暑期多校第4场Contest1232

F. Median Shuffle

1006. F. Median Shuffle

题目描述

  • 本题开启 Special Judge

给定一个奇数 nn。存在一个长度为 nn 的排列 aa

令:

m=n+12.m=\frac{n+1}{2}.

构造一个长度为 mm 的序列 bb。对于每个 1im1\le i\le m,定义:

$$b_i=\operatorname{median}{\char"28}a_1,a_2,\ldots,a_{2i-1}{\char"29}.$$

其中,median\operatorname{median} 为取中位数操作,长度为 2i12i-1 的序列的中位数是将其从小到大排序后的第 ii 个元素。

将序列 aa 和序列 bb 拼接,再将得到的序列任意打乱,得到一个长度为:

n+m=3n+12n+m=\frac{3n+1}{2}

的序列 cc

现在给定 nn 和打乱后的序列 cc,请构造任意一个可能的排列 aa。如果不存在满足条件的排列,输出 -1

序列 cc 中元素的顺序不包含任何额外信息。

样例解释

样例中,排列可以取为 ([2,1,3])。长度为 (1) 和 (3) 的奇数 前缀中位数均为 (2),因此 (a) 与中位数序列拼接后的多重集合恰好 等于输入的多重集合。

样例输出不是唯一的。

数据范围

  • (1\le T\le10);
  • (1\le n\le3\times10^5),且 (n) 为奇数;
  • (1\le c_i\le n);
  • 所有测试数据的 (n) 之和不超过 (6\times10^5)。

输入格式

输入包含多组测试数据。第一行包含一个整数 TT1T101\le T\le 10),表示测试数据组数。

对于每组测试数据:

第一行包含一个奇数 nn1n3×1051\le n\le 3\times 10^5)。

第二行包含 3n+12\frac{3n+1}{2} 个整数 c1,c2,,c3n+12c_1,c_2,\ldots,c_{\frac{3n+1}{2}}1cin1\le c_i\le n)。

输出格式

对于每组测试数据:

  • 如果不存在满足条件的排列,输出一行 -1
  • 否则,输出一行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示任意一个满足条件的排列。

如果存在多组合法答案,输出任意一组即可。

样例输入

1
3
2 1 2 3 2

样例输出

2 1 3

来源:2026杭电多校-测试专用(成都七中) 原题链接:http://acm.hdu.edu.cn/contest/problem_show.php?cid=1232&pid=1006 ⚠ 本题为 Special Judge。官方数据中的 .out 多为评测机判定输出(如 AC/OK/Correct/yes),导入后需自行提供 checker 方可正确评测。