#3787. 求最长不下降序列
求最长不下降序列
题目描述
给定由 个互不相同的整数组成的数列 ,请从中选出尽可能多的数,使它们保持在原数列中的先后顺序,且后一个数不小于前一个数。
也就是说,所选数的下标满足 ,对应的数满足 。选出的数不要求在原数列中连续。
请输出能够选出的最大个数,以及一个满足要求的数列。
输入格式
第一行包含一个整数 ,表示数列的长度。
第二行包含 个互不相同的整数 ,相邻整数之间用空格分隔。
输出格式
第一行输出 max=,紧接着输出能够选出的最大个数,两者之间不要添加空格。
第二行按在原数列中出现的顺序,输出一个最长不下降子序列,相邻整数之间用空格分隔。
如果答案不唯一,输出任意一种即可。本题使用特殊评测。
样例
14
13 7 9 16 38 24 37 18 44 19 21 22 63 15
max=8
7 9 16 18 19 21 22 63
样例解释
数列 是长度为 的不下降子序列,但不是最长的。样例输出给出了一个长度为 的不下降子序列。
数据范围与提示
- 数列中的所有整数互不相同。
来源
信息学奥赛一本通,1259:〖例9.3〗求最长不下降序列。