atcoder#ABC290C. [ABC290C] Max MEX

[ABC290C] Max MEX

配点 : 300300

問題文

長さ NN の非負整数列 AA が与えられます。 AA から KK 要素を選んで順序を保ったまま抜き出した列を BB としたとき、 MEX(B)MEX(B) としてありえる最大値を求めてください。

但し、数列 XX に対して MEX(X)MEX(X) は以下の条件を満たす唯一の非負整数 mm として定義されます。

  • 0i<m0 \le i < m を満たす全ての整数 iiXX に含まれる。
  • mmXX に含まれない。

制約

  • 入力は全て整数
  • 1KN3×1051 \le K \le N \le 3 \times 10^5
  • 0Ai1090 \le A_i \le 10^9

入力

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

NN KK

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

7 3
2 0 2 3 2 1 9
3

この入力では A=(2,0,2,3,2,1,9)A=(2,0,2,3,2,1,9) であり、ここから K=3K=3 要素を選んで抜き出して数列 BB を得ます。例えば、

  • 1,2,31,2,3 要素目を抜き出した時、 MEX(B)=MEX(2,0,2)=1MEX(B)=MEX(2,0,2)=1
  • 3,4,63,4,6 要素目を抜き出した時、 MEX(B)=MEX(2,3,1)=0MEX(B)=MEX(2,3,1)=0
  • 2,6,72,6,7 要素目を抜き出した時、 MEX(B)=MEX(0,1,9)=2MEX(B)=MEX(0,1,9)=2
  • 2,3,62,3,6 要素目を抜き出した時、 MEX(B)=MEX(0,2,1)=3MEX(B)=MEX(0,2,1)=3

のようになります。 達成可能な MEXMEX の最大値は 33 です。