Problem4282--§2 9 最长上升子序列(LIS)

4282: §2 9 最长上升子序列(LIS)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

一个数的序列 $b_i$,当 $b_1<b_2<...<b_S$ 的时候,我们称这个序列是上升的。
对于给定的一个序列 $\{a_1, a_2, ...,a_N\}$,我们可以得到一些上升的子序列 $\{a_{i1}, a_{i2}, ..., a_{iK}\}$,这里 $1≤i_1<i_2<...<i_K≤N$。比如,对于序列 $\{1,7,3,5,9,4,8\}$,有它的一些上升子序列,如 $\{1,7\}, \{3,4,8\}$ 等等。这些子序列中最长的长度是 $4$,比如子序列 $\{1,3,5,8\}$。
你的任务,就是对于给定的序列,求出最长上升子序列的长度。

Input

输入的第一行是序列的长度 $N(1≤N≤1000)$。
第二行给出序列中的 $N$ 个整数,这些整数的取值范围都在 $0$ 到 $10000$。

Output

最长上升子序列的长度。

Sample 1 Input

7
1 7 3 5 9 4 8

Sample 1 Output

4

Sample 2 Input

6
0 1 0 3 2 3

Sample 2 Output

4

Sample 3 Input

6
7 7 7 7 7 7

Sample 3 Output

1

Source/Category