Comprimento máximo do subarray com elementos únicos após K substituições

C++ Hard arrays

Tarefa «Comprimento máximo do subarray com elementos únicos após K substituições»

Dado um array de inteiros. É permitido substituir no máximo K elementos do array por quaisquer outros números inteiros (possivelmente não únicos). É necessário encontrar o maior comprimento possível de um subarray contínuo, cujos elementos sejam todos distintos (únicos) após realizar no máximo K substituições. Se for impossível obter um subarray com elementos únicos, imprimir 0. Restrições: comprimento do array N até 10^5, K até N, valores dos elementos em módulo até 10^9.

Formato de Entrada

Na primeira linha, dois números inteiros N e K (1 ≤ N ≤ 100000, 0 ≤ K ≤ N). Na segunda linha, N números inteiros — os elementos do array.

Formato de Saída

Um número inteiro — o comprimento máximo do subarray com elementos únicos após no máximo K substituições.

Exemplos

Exemplo 1

ENTRADA
4 1 2 3 4
SAÍDA
3
main.cpp