Laiko ribojimas: 1s

Atminties ribojimas: 64MB

Duomenų failas: intervalas.in

Rezultatų failas: intervalas.out

Jei norite pateikti savo sprendimą - prisijunkite.

Intervalas

Šiame uždavinyje jums pateikta simbolių eilutė, kurią sudaro n mažųjų lotyniškos abėcėlės raidžių, bei sveikasis skaičius k. Jūsų užduotis - rasti ilgiausio simbolių intervalo (angl. substring), kuriame būtų lygiai k skirtingų simbolių, ilgį, arba pranešti, kad toks intervalas neegzistuoja.

Pavyzdžiui, tegu yra duota simbolių eilutė abcbdbdbbdcdabd. Tuomet:

  • Jei k=2, tai ieškomas ilgis būtų 7, nes egzistuoja simbolių intervalas bdbdbbd, kuriame yra lygiai 2 skirtingos raidės.
  • Jei k=3, tai ieškomas ilgis būtų 11, nes egzistuoja simbolių intervalas bcbdbdbbdcd, kuriame yra lygiai 3 skirtingos raidės;
  • Jei k=5, tai reikalingas simbolių intervalas neegzistuoja, nes visoje simbolių eilutėje yra tik 4 skirtingos raidės.

Pradiniai duomenys

Pirmoje eilutėje pateiktas vienas sveikasis skaičius k (1\\leqk\\leq26).

Antroje eilutėje pateikta simbolių eiluė s (1\\leq|s|\\leq10^5). Yra garantuota, kad simbolių eilutę sudaro tik mažosios lotyniškos abėcėlės raidės.

Rezultatai

Jūsų programa turi išvesti vieną sveikąjį skaičių: -1, jei ieškomas simbolių intervalas neegzistuoja, arba ieškomo simbolių intervalo ilgį.

Pavyzdžiai

Pradiniai duomenys Rezultatai
2
abcbdbdbbdcdabd
7
3
abcbdbdbbdcdabd
11
5
abcbdbdbbdcdabd
-1