#arc134d. [arc134_d]Concatenate Subsequences
[arc134_d]Concatenate Subsequences
问题陈述
给定长度为 的整数序列 。
Snuke 将使用一个非空(不一定是连续的)子序列 (其中 是 中的元素)来构造一个新的序列。构造的序列是通过按顺序提取并连接 序列中的第 个、第 个,以此类推,第 个,第 个等元素得到的。
找到 Snuke 可以构造的字典序最小的序列。
序列的字典序比较方法
以下是比较两个序列 和 的字典序的算法。
设 表示 的第 个元素。如果 字典序小于 ,我们表示为 ;如果 字典序大于 ,我们表示为 。
- 设 是 和 的长度中较小的那个。对于每个 ,我们检查 和 是否相等。
- 如果存在某个 使得 ,我们设最小的这样的 为 。然后,我们比较 和 。如果在数值上 小于 ,我们确定 并停止;如果 大于 ,我们确定 并停止。
- 如果不存在 使得 ,我们比较 和 的长度。如果 比 短,我们确定 并停止;如果 比 长,我们确定 并停止。
约束条件
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
输出
打印出 Snuke 可以构造的字典序最小的序列。
示例输入 1
3
2 1 3 1 2 2
示例输出 1
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