atcoder#ARC134D. [ARC134D] Concatenate Subsequences
[ARC134D] Concatenate Subsequences
题目描述
長さ の数列 が与えられます。
すぬけ君が の空でない(連続するとは限らない)部分列 を用いて、数列を作ろうとしています。 作られる数列は、 の 番目、 番目、、 番目、 番目、、 番目の要素を抜き出してこの順で連結した数列です。
すぬけ君が作ることができる数列のうち、辞書順最小のものを求めてください。
数列の辞書順とは? 相異なる数列 と数列 の大小を判定するアルゴリズムを以下に説明します。
以下では の 番目の要素を のように表します。また、 が より辞書順で小さい場合は 、大きい場合は と表します。
- と のうち長さが短い方の数列の長さを とします。 に対して と が一致するか調べます。
- である が存在する場合、そのような のうち最小のものを とします。そして、 と を比較して、 が より(数として)小さい場合は 、大きい場合は と決定して、アルゴリズムを終了します。
- である が存在しない場合、 と の長さを比較して、 が より短い場合は 、長い場合は と決定して、アルゴリズムを終了します。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
すぬけ君が作ることができる数列のうち、辞書順最小のものを出力せよ。
题目大意
给定一个长度为 的正整数序列 ,你需要在前 个数中删除若干个数(不能全删),如果删除了第 个数,那么第 个数也会被删除,求出在所有的删除方案中,最终留下的数列字典序最小的方案,输出最后留下的数列。
3
2 1 3 1 2 2
1 2
10
38 38 80 62 62 67 38 78 74 52 53 77 59 83 74 63 80 61 68 55
38 38 38 52 53 77 80 55
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
22 22 50 65 54 52
提示
制約
- 与えられる入力は全て整数
Sample Explanation 1
- とします。 - このとき、作られる数列は となり辞書順最小です。