長さの数列の最長増加部分列 (LIS: Longest Increasing Subsequence) のうち、辞書順最小であるものを出力してください。
数列のLISとは、で、を満たすうち、が最も大きいものです。 (つまり、狭義増加のLISです)
辞書順最小とは、の長さのLISであるとがあるとき、全ての()に対して、が成り立つとき、は数列の辞書順最小であるLISといいます。
入力は以下の形式で標準入力から与えられる。
N A_0 A_1 .. A_(N-2) A_(N-1)
答えとなる長さkのLISについて、k個の整数を1行のスペース区切りで出力してください。
B_0 B_1 .. B_(k-2) B_(k-1)
6 4 5 6 1 2 3
1 2 3
LISの長さは3であり、4 5 6
と1 2 3
が考えられます。辞書順最小の1 2 3
を答えます。
6 1 2 6 9 5 10
1 2 6 9 10
LISがただ一つの場合は、それを出力してください。
6 1 2 2 3 3 3
1 2 3
広義増加(以上)ではなく、狭義増加(厳密に増加)であることに注意してください。
1 100
100