#A1186. 输出最长上升子序列(LIS)

输出最长上升子序列(LIS)

题目描述

输入一个数组,找到最长的上升子序列(子序列可以不连续)并输出。

例如,数组a = {1, 2, 3, -1, -2, 7, 9},它的最长上升子序列是{1, 2, 3, 7, 9},长度为5。另外,还有一些子序列是上升子序列,比如{1, 2, 3},{-2, 7, 9}等,但都不是最长的。


输入格式

第一行一个正整数n(1≤n≤100),代表数组长度;

第二行n个正整数ai(-100≤ai≤100),代表数组的每个元素。

输出格式

若干个整数,为最长上升子序列。

若最长上升子序列不止一个,输出最靠前的一个。


输入/输出样例

6
9 3 6 1 2 7
3 6 7

样例解释

最长上升子序列是{3, 6, 7},长度3。

说明/提示

时间1000ms,内存256MiB