Máxima longitud de un subarreglo con elementos únicos después de K reemplazos

C++ Hard arrays

Tarea «Máxima longitud de un subarreglo con elementos únicos después de K reemplazos»

Dado un arreglo de enteros. Está permitido reemplazar no más de K elementos del arreglo con cualquier otro número entero (posiblemente no único). Es necesario encontrar la máxima longitud posible de un subarreglo continuo, cuyos elementos sean todos distintos (únicos) después de realizar no más de K reemplazos. Si es imposible obtener un subarreglo con elementos únicos, mostrar 0. Restricciones: longitud del arreglo N hasta 10^5, K hasta N, valores de los elementos en módulo hasta 10^9.

Formato de entrada

En la primera línea dos enteros N y K (1 ≤ N ≤ 100000, 0 ≤ K ≤ N). En la segunda línea N enteros — los elementos del arreglo.

Formato de salida

Un único entero — la máxima longitud del subarreglo con elementos únicos después de no más de K reemplazos.

Ejemplos

Ejemplo 1

ENTRADA
4 1 2 3 4
SALIDA
3
main.cpp