为了更好的阅读体检,可以查看我的算法学习网
在线评测链接:P1017
题目内容
塔子哥是一名设计师,最近接到了一项重要任务:设计一个新款的生日蜡烛,以庆祝公司成立20周年。为了使蜡烛看起来更加炫目,塔子哥计划在蜡烛上缠绕彩带。他买了一串长度为 N N N 的非常漂亮的彩带,每一厘米的彩带上都是一种色彩,但是当他拿到彩带后才发现,彩带上的颜色太多了,超出了他设计中所需要的颜色种类数量。
于是,塔子哥决定从彩带上截取一段,使得这段彩带上的颜色种类不超过 K K K种。但是,他希望这段彩带尽量长,这样才能在蜡烛上缠绕出更加炫目的效果。为了尽快完成设计,他来找你求助,希望你能帮他设计出一种截取方法,使得截取出来的彩带尽可能长,并且颜色种类不超过 K K K种。
输入描述
第一行两个整数
N
,
K
N,K
N,K,以空格分开,分别表示彩带有
N
N
N厘米长,你截取的一段连续的彩带不能超过
K
K
K种颜色。接下来一行
N
N
N个整数,每个整数表示一种色彩,相同的整数表示相同的色彩。
1
≤
N
,
K
≤
5000
1≤N,K≤5000
1≤N,K≤5000,彩带上的颜色数字介于
[
1
,
2000
]
[1,2000]
[1,2000]之间
输出描述
一行,一个整数,表示选取的彩带的最大长度。
样例 1 1 1
输入
8 3
1 2 3 2 1 4 5 1
输出
5
说明:
最长的一段彩带是
[
1
,
2
,
3
,
2
,
1
]
[1,2,3,2,1]
[1,2,3,2,1],共
5
5
5厘米。