Представьте, что вы играете в следующую несложную компьютерную игру. На экране нарисованы n кубиков, расположенных в ряд. Каждый кубик окрашен в один из m цветов. Вам разрешается удалить не более чем k кубиков (которые не обязательно идут подряд). После этого оставшиеся кубики сомкнутся и будет произведен подсчет очков. Количество очков, которое вы получите, равно длине максимальной последовательности подряд идущих кубиков одного цвета. Напишите программу, определяющую максимально возможное количество очков, которое вы можете получить.
Обратите внимание: разрешается удалять не более k произвольных кубиков, допустимо не удалять кубики вообще.
В первой строке записаны три целых числа n, m и k (1 ≤ n ≤ 2·105, 1 ≤ m ≤ 105, 0 ≤ k < n). Во второй строке записаны n целых чисел от 1 до m — номера цветов кубиков. Номера цветов разделяются одиночными пробелами.
Выведите максимально возможное количество очков, которое можно набрать.
10 3 2
1 2 1 1 3 2 1 1 2 2
4
10 2 2
1 2 1 2 1 1 2 1 1 2
5
3 1 2
1 1 1
3
В первом примере следует удалить пятый и шестой кубики.
Во втором примере следует удалить четвертый и седьмой кубики.
В третьем примере следует не удалять ни одного кубика.
Название |
---|