atcoder#ABC299G. [ABC299G] Minimum Permutation

[ABC299G] Minimum Permutation

题目描述

1 1 以上 M M 以下の整数からなる長さ N N の数列 A A があります。ここで、1 1 以上 M M 以下のどの整数も A A 1 1 回以上登場します。

A A の長さ M M の(連続とは限らない)部分列であって 1, , M 1,\ \ldots,\ M 1 1 回ずつ登場するもののうち、辞書順最小のものを答えてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M A1 A_1 A2 A_2 \ldots AN A_N

输出格式

求めるべき部分列を B1, , BM B_1,\ \ldots,\ B_M として、以下の形式で出力せよ。

B1 B_1 B2 B_2 \ldots BM B_M

题目大意

给定一个长度为 NN 的序列 AA,由 11MM 之间的整数组成。其中,11MM 每个数至少出现一次。

找到一个长度为 MMAA 的子序列,使得这个子序列中 11MM 恰好出现一次,输出满足条件的字典序最小的子序列。

4 3
2 3 1 3
2 1 3
4 4
2 3 1 4
2 3 1 4
20 10
6 3 8 5 8 10 9 3 6 1 8 3 3 7 4 7 2 7 8 5
3 5 8 10 9 6 1 4 2 7

提示

制約

  • 1  M  N  2 × 105 1\ \leq\ M\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Ai  M 1\ \leq\ A_i\ \leq\ M
  • 1 1 以上 M M 以下のどの整数も A A 1 1 回以上登場する。
  • 入力中の値はすべて整数である。

Sample Explanation 1

A A の長さ 3 3 の部分列であって 1, 2, 3 1,\ 2,\ 3 1 1 回ずつ登場するものは (2, 3, 1) (2,\ 3,\ 1) (2, 1, 3) (2,\ 1,\ 3) であり、このうち辞書順で小さいのは (2, 1, 3) (2,\ 1,\ 3) です。