#P0201. 小田的好数组
小田的好数组
小田的好数组
本题需要使用文件输入输出,文件名为hsz.in、hsz.out。
题目描述
小田得到了一个长度为 的数组 ,他希望从数组中选择一个子序列,并使得这个子序列构成的数组是一个“好数组”。
对于“好数组”的定义是:如果一个数组按升序排序后和原来的不完全相同,则是一个好数组。例如 升序排列后是 ,和原来不完全相同,因此是一个好数组,而 不是一个好数组。
小田想知道,如果想要使得选择的子序列构成一个“好数组”,最长可以选择多长的子序列?
说明:子序列指一个数组删除一个数字后(也可以不删),剩余的数字按其原来的顺序构成的序列。
例如: 是 的一个子序列, 也是,但 不是。
输入描述
输入包含两行。
第一行一个正整数 ,表示数组 的长度。
第二行 的正整数 ,表示数组 的元素。
输出描述
输出包含一行一个整数,表示可以构成“好数组”的最长子序列的长度。
输入输出样例
输入 #1
1
1
输出 #1
0
输入 #2
2
2 1
输出 #2
2
说明/提示
【样例 1 解释】
只能选择 ,但 这个数组排序后还是 ,无法满足不完全相同的条件。
【样例 2 解释】
选择 ,排序后是 ,满足不完全相同的要求。
【数据范围】
对于 的数据,有: 。
对于另外 的数据,有:所有 完全相等。
对于所有测试数据,有: 。