#arc134d. [arc134_d]Concatenate Subsequences

[arc134_d]Concatenate Subsequences

问题陈述

给定长度为 2N2N 的整数序列 aa

Snuke 将使用一个非空(不一定是连续的)子序列 x=(x1,x2,,xk)x=(x_1,x_2,\ldots,x_k)(其中 xix_i(1,2,,N)(1,2,\ldots,N) 中的元素)来构造一个新的序列。构造的序列是通过按顺序提取并连接 aa 序列中的第 x1x_1 个、第 x2x_2 个,以此类推,第 (x1+N)(x_{1}+N) 个,第 (x2+N)(x_{2}+N) 个等元素得到的。

找到 Snuke 可以构造的字典序最小的序列。

序列的字典序比较方法

以下是比较两个序列 SSTT 的字典序的算法。

SiS_i 表示 SS 的第 ii 个元素。如果 SS 字典序小于 TT,我们表示为 SltTS \\lt T;如果 SS 字典序大于 TT,我们表示为 SgtTS \\gt T

  1. LLSSTT 的长度中较小的那个。对于每个 i=1,2,ldots,Li=1,2,\\ldots,L,我们检查 SiS_iTiT_i 是否相等。
  2. 如果存在某个 ii 使得 SineqTiS_i \\neq T_i,我们设最小的这样的 iijj。然后,我们比较 SjS_jTjT_j。如果在数值上 SjS_j 小于 TjT_j,我们确定 SltTS \\lt T 并停止;如果 SjS_j 大于 TjT_j,我们确定 SgtTS \\gt T 并停止。
  3. 如果不存在 ii 使得 SineqTiS_i \\neq T_i,我们比较 SSTT 的长度。如果 SSTT 短,我们确定 SltTS \\lt T 并停止;如果 SSTT 长,我们确定 SgtTS \\gt T 并停止。

约束条件

  • 输入中的所有值都是整数。
  • 1leqNleq1051 \\leq N \\leq 10^5
  • 1leqaileq1091 \\leq a_i \\leq 10^9

输入

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

NN a1a_{1} cdots\\cdots a2Na_{2N}

输出

打印出 Snuke 可以构造的字典序最小的序列。

示例输入 1

3
2 1 3 1 2 2

示例输出 1

1 2
  • 我们选择 x=(2)x = (2)
  • 这样,得到的序列为 (1,2)(1,2),这是可能的最小字典序结果。

示例输入 2

10
38 38 80 62 62 67 38 78 74 52 53 77 59 83 74 63 80 61 68 55

示例输出 2

38 38 38 52 53 77 80 55

示例输入 3

12
52 73 49 63 55 74 35 68 22 22 74 50 71 60 52 62 65 54 70 59 65 54 60 52

示例输出 3

22 22 50 65 54 52