AT_yahoo_procon2017_final_d KthLIS
Description
[problemUrl]: https://atcoder.jp/contests/yahoo-procon2017-final/tasks/yahoo_procon2017_final_d
高橋君は,長さ $ N $ の数列 $ A $ を持っています. 高橋君は,$ A $ の最長増加部分列を探して遊ぶことにしました. $ A $ の最長増加部分列とは,$ A $ の部分列であり,かつ狭義単調増加なものの中で,最も長いものを意味します. 高橋君は,$ A $ の最長増加部分列をただ探すだけではつまらないと思い,$ A $ の最長増加部分列となる部分列の中で,辞書順で $ K $ 番目のものを求めることにしました. なお,取り出す位置が異なっても,数列として同じ部分列は区別しないことにしました.
しかし,高橋くんは途中で疲れて寝てしまいました. 高橋君の代わりに,$ A $ の最長増加部分列のうち辞書順で $ K $ 番目のものを求めて出力するプログラムを書いてください. なお,そのようなものが存在しない場合は,`None` と出力してください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ ... $ $ A_N $
Output Format
$ A $ の最長増加部分列のうち辞書順で $ K $ 番目のものを,空白を区切りとして出力せよ. そのようなものが存在しない場合は,`None` と出力せよ.
Explanation/Hint
### 制約
- 入力は全て整数である
- $ 1\ \leq\ N\ \leq\ 300,000 $
- $ 1\ \leq\ K\ \leq\ 10^{18} $
- $ 1\ \leq\ A_i\ \leq\ 10^9 $
### Sample Explanation 1
$ A $ の最長部分増加列となる部分列は,以下の $ 3 $ 通りあります. - $ [1,2,7] $ - $ [3,5,7] $ - $ [3,6,7] $ 辞書順で $ 2 $ 番目のものは,$ [3,5,7] $ です.
### Sample Explanation 2
$ A $ の最長増加部分列は,$ [1,2] $ の $ 1 $ 通りしかないので,`None` を出力します.