3128: 任务调度

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:31 解决:10

题目描述

“选课加社一时爽,时间规划火葬场”话说小 A 初来乍到,在大学里选上了满满的课,还 加入了很多很多的社团。刚刚过不到几个月就难以承受,发现自己如果三心二意,做一会儿微 积分作业,写一会儿社团活动计划,最后便会什么事情都做不成。他决定有所取舍,但他又不 愿意舍弃太多,这一重要的抉择就交给聪明的你了! 已知小 A 的大学将社团与课程统一编号了,并且都是不超过 10 9 的。小 A 列举了他这一学 期要做的 n 项工作,因为 deadline 都非常紧迫,这些工作必须按照给定次序完成,不能先完成 后面的工作。每一项工作都有一个对应的编码,代表着这项工作是哪一社团或是课程派发的。 小 A 希望退出的社团和课程总数不超过 K,当他退出一个编码后,他便不会去做对应的所 有工作。他希望能够找到一个保留的任务序列,在不退出太多的情况下,使得连续拥有同样编 码的工作的长度最长。

输入

第一行两个正整数 n,K。n 表示任务列表的长度,K 表示退出的类型总数上限。 接下来 N 行,每行仅一个正整数 A i 。为 i 号工作由编码 A i 的课程或社团派发。

输出

仅一个正整数,为最长的最长完美学生序列。

样例输入 复制

9 1
2
7
3
7
7
3
7
5
7

样例输出 复制

4

提示

【输入输出样例说明】 总共有 9 项工作,最多只能退出一门课程或一个社团。 若不退出,拥有同样编码的工作的长度为 2。 若退出 3 号项目,则任务序列变成 2 7 7 7 7 5 7,拥有同样编码的工作的长度为 4。

【数据规模与约定】 对于 10%的数据,n≤10。 对于 30%的数据,n≤10^3 。 对于 100%的数据,1≤n≤10^5 。