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

最长不下降子序列(LIS)

描述

设有由nn个不相同的整数组成的数列,记为:a1a_1a2a_2\dotsana_naiaja_i \neq a_j(iji \neq j)。 例如331818771414101012122323414116162424。 若存在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的不下降序列。 如上例中33181823232424就是一个长度为44的不下降序列,同时也有33771010121216162424长度为66的不下降序列。 程序要求,当原数列给出之后,求出最长的不下降序列。

输入

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

输出

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

样例

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