T285012 最长不下降序列

题目描述

设有由$n(1\leq n\leq 200)$个的整数组成的数列,记为:$b(1)、b(2)、……、b(n)$若存在$ i_1 \lt i_2 \lt i_3 \lt … \lt i_e $ 且有$b(i_1) \lt =b(i_2) \lt = … \lt =b(i_e) $则称为长度为e的不下降序列。程序要求,当原数列出之后,求出最长的不下降序列。 例如`13,7,9,16,38,24,37,18,44,19,21,22,63,15`。例中`13,16,18,19,21,22,63`就是一个长度为$7$的不下降序列,同时也有`7 ,9,16,18,19,21,22,63`组成的长度为$8$的不下降序列。 本题规定,如果存在两条最长不下降子序列路线,输出结束位置更早的这条路线,如果同一条最长不下降子序列路线(终点相同)存在个别数字有多种选择,输出同一个位置尽可能靠前的这种。

输入格式

第一行为$n$,第二行为用空格隔开的$n$个整数。

输出格式

第一行为输出最大个数$max$(形式见样例); 第二行为$max$个整数形成的不下降序列,答案可能不唯一,如果有相同选择,选择靠前的一个。

说明/提示

每个数$-1000 \leq b_i \leq 1000$