#1674. 最长不下降子序列(LIS)

最长不下降子序列(LIS)

描述

设有由nn个不相同的整数组成的数列,记为:a1a_1、a2a_2、…\dots、ana_n且ai≠aja_i \neq a_j(i≠ji \neq j)。 例如33,1818,77,1414,1010,1212,2323,4141,1616,2424。 若存在i1<i2<i3<⋯<iei_1 \lt i_2 \lt i_3 \lt \dots \lt i_e且有aai1i1<a\lt ai2i2<⋯<a\lt \dots \lt aieie,则称为长度为ee的不下降序列。 如上例中33,1818,2323,2424就是一个长度为44的不下降序列,同时也有33,77,1010,1212,1616,2424长度为66的不下降序列。 程序要求,当原数列给出之后,求出最长的不下降序列。

输入

第一行为nn,表示nn个数(10≤n≤1000010 \le n \le 10000); 第二行nn个整数,数值之间用一个空格分隔(1≤ai≤n1 \le a_i \le n);

输出

最长不下降子序列的长度。

样例

3
1 2 3
3
10
3 18 7 14 10 12 23 41 16 24
6