题目描述
求最长严格上升子序列:输出长度,并从右往左贪心重建出一条方案——约定:先算 (以 结尾的最长长度),然后从最后一个元素往前扫,遇到 恰好等于「还需要的长度」且 小于已选的最后一个数时就选它,选够 个为止,把选中元素按原顺序输出。
输入格式
第一行一个整数 。
第二行 个整数 。
输出格式
第一行一个整数:最长严格上升子序列长度 。
第二行 个整数:按上述约定重建的方案中选中的元素(保持原数组中的先后顺序)。
样例
输入
8 10 9 2 5 3 7 101 18
输出
4 2 3 7 18
数据范围
,。