CF1385B.Restore the Permutation by Merger

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

Restore the Permutation by Merger

题目描述

一个长度为 nn 的排列是一个由 11nn 的整数构成的长度为 nn 的序列,且每个数字恰好出现一次。例如,[1][1][4,3,5,1,2][4, 3, 5, 1, 2][3,2,1][3, 2, 1] 都是排列,而 [1,1][1, 1][0,1][0, 1][2,2,1,4][2, 2, 1, 4] 不是排列。

现在有一个排列 p[1n]p[1\dots n]。它与自身进行了合并。也就是说,我们取两个 pp,将第二个 pp 的元素插入到第一个 pp 中,且保持各自元素的相对顺序。最终得到一个长度为 2n2n 的序列。

例如,如果 p=[3,1,2]p=[3, 1, 2],一些可能的合并结果是:[3,1,2,3,1,2][3, 1, 2, 3, 1, 2][3,3,1,1,2,2][3, 3, 1, 1, 2, 2][3,1,3,1,2,2][3, 1, 3, 1, 2, 2]。以下序列不是合法的合并结果:[1,3,2,1,2,3][1, 3, 2, 1, 2, 3][3,1,2,3,2,1][3, 1, 2, 3, 2, 1][3,3,1,2,2,1][3, 3, 1, 2, 2, 1]

再比如,如果 p=[2,1]p=[2, 1],可能的合并结果有:[2,2,1,1][2, 2, 1, 1][2,1,2,1][2, 1, 2, 1]。以下序列不是合法的合并结果:[1,1,2,2][1, 1, 2, 2][2,1,1,2][2, 1, 1, 2][1,2,2,1][1, 2, 2, 1]

你的任务是根据给定的合并结果序列 aa,还原出原始排列 pp。保证答案存在且唯一。

你需要回答 tt 组独立的测试用例。

输入格式

输入的第一行包含一个整数 tt1t4001 \le t \le 400),表示测试用例的数量。接下来是 tt 组测试用例。

每组测试用例的第一行包含一个整数 nn1n501 \le n \le 50),表示排列的长度。第二行包含 2n2n 个整数 a1,a2,,a2na_1, a_2, \dots, a_{2n}1ain1 \le a_i \le n),其中 aia_i 是序列 aa 的第 ii 个元素。保证数组 aa 是某个排列 pp 与自身合并后的结果。

输出格式

对于每个测试用例,输出一行答案:nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n1pin1 \le p_i \le n),表示原始排列。保证答案存在且唯一。

说明/提示

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

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