Олимпиадный тренинг

Задача . E. Кубики


Представьте, что вы играете в следующую несложную компьютерную игру. На экране нарисованы n кубиков, расположенных в ряд. Каждый кубик окрашен в один из m цветов. Вам разрешается удалить не более чем k кубиков (которые не обязательно идут подряд). После этого оставшиеся кубики сомкнутся и будет произведен подсчет очков. Количество очков, которое вы получите, равно длине максимальной последовательности подряд идущих кубиков одного цвета. Напишите программу, определяющую максимально возможное количество очков, которое вы можете получить.

Обратите внимание: разрешается удалять не более k произвольных кубиков, допустимо не удалять кубики вообще.

Входные данные

В первой строке записаны три целых числа n, m и k (1 ≤ n ≤ 2·105, 1 ≤ m ≤ 105, 0 ≤ k < n). Во второй строке записаны n целых чисел от 1 до m — номера цветов кубиков. Номера цветов разделяются одиночными пробелами.

Выходные данные

Выведите максимально возможное количество очков, которое можно набрать.

Примечание

В первом примере следует удалить пятый и шестой кубики.

Во втором примере следует удалить четвертый и седьмой кубики.

В третьем примере следует не удалять ни одного кубика.


Примеры
Входные данныеВыходные данные
1 10 3 2
1 2 1 1 3 2 1 1 2 2
4
2 10 2 2
1 2 1 2 1 1 2 1 1 2
5
3 3 1 2
1 1 1
3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя