Kpartit

Time limit: 0.1s Memory limit: 256MB Input: Output:

Un șir xx format din literele x0,x1,...,xn1x_0, x_1, ..., x_{n-1} cu n>0n > 0 se numește kpartit de ordin k dacă există kk și p1,p2,...,pk1p_1, p_2, ..., p_{k-1} cu proprietățile:

  • 0<kn0 < k \leq n
  • 0<p1<p2<<pk1<n0<p_1 < p_2< \ldots <p_{k-1}< n
  • xi=xjx_i=x_j pentru orice 0i<j<p10 \leq i < j < p_1
  • xi=xjx_i=x_j pentru orice p1i<j<p2p_1 \leq i < j < p_2
  • \ldots
  • xi=xjx_i=x_j pentru orice pk1i<j<np_{k-1} \leq i < j < n
  • xp11xp1,xp21xp2,,xpk1xpkx_{p_1-1} \neq x_{p_1}, x_{p_2-1} \neq x_{p_2}, \dots, x_{p_k-1} \neq x_{p_k}

De exemplu șirurile de lungime 88 bbbawwww și daaaaddd sunt kpartite de ordinul 33, șirul de litere de lungime 1010 eeeeezzzzz este kpartit de ordinul 22, iar șirul de lungime 55 yyyyy este kpartit de ordinul 11.

Cerință

Scrieţi un program care, pentru un șir de litere x=(x0,x1,,xn1)x=(x_0, x_1, \dots, x_{n-1}) de lungime nn și un număr natural kk, 0<kn0 < k \leq n determină numărul minim de litere care trebuie eliminate din xx astfel încât acesta să devină kpartit de ordin kk. În cazul în care acest lucru nu e posibil, se va afișa 1-1.

Date de intrare

Pe prima linie se află numerele nn și kk, separate printr-un spațiu, cu semnificația de mai sus iar pe cea de-a doua linie termenii șirului dat x0,x1,,xn1x_0, x_1, \dots, x_{n-1}. Aceștia nu vor fi separați prin spații.

Date de ieșire

Pe prima linie se află un singur număr natural, reprezentând rezultatul determinat.

Restricții și precizări

  • 1kn5 0001 \leq k \leq n \leq 5 \ 000;
  • Șirul xx este format doar din litere mici ale alfabetului englez.
# Punctaj Restricții
1 21 n20n \leq 20
2 36 n100n \leq 100
3 24 n1 000n \leq 1 \ 000
4 19 Nu există alte restricții.

Exemplul 1

stdin

8 3
bbbawwww

stdout

0

Explicație

Nu este necesară eliminarea niciunei litere.

Exemplul 2

stdin

8 2
bbbawwww

stdout

1

Explicație

Este suficientă eliminarea unei litere a astfel încât șirul dat să devină kpartit de ordin 22.

Exemplul 3

stdin

10 5
eeeeezzzzz

stdout

-1

Explicație

Nu este posibilă obținerea unui șir kpartit de ordinul 55 prin eliminarea unor litere ale șirului dat.

Exemplul 4

stdin

10 2
bcbbxxbccc

stdout

3

Explicație

Este suficientă eliminarea unei litere c și a celor două litere x astfel încât șirul dat să devină kpartit de ordin 22.

Log in or sign up to be able to send submissions!