culori

Time limit: 0.1s Memory limit: 8MB Input: culori.in Output: culori.out

În jurul muzeului din orașul Smallville exista un gard ce conține NN scânduri de înălțimi diferite. Putem spune că scândura ii are înălțimea HiH_i. Directorul muzeului le-a cerut angajaților să vopsească acest gard cu un număr minim de culori, astfel încât să se respecte următoarea condiție: pentru un număr întreg KK cunoscut, orice secvență de KK scânduri consecutive nu trebuie să conțină 22 scânduri de aceeași înălțime, colorate identic.

Cerință

Scrieţi un program care să găsească numărul minim de culori ce vor fi folosite pentru a colora gardului.

Date de intrare

Fişierul de intrare culori.in conţine:

  • Pe prima linie, N K - două numere întregi reprezentând numărul de scânduri și lungimea secvenței.
  • Pe următoarea linie, NN numere naturale HiH_i reprezentand înălțimile celor NN scânduri.

Date de ieșire

Fişierul de ieşire culori.out va conţine un număr întreg CC reprezentând numărul minim de culori folosite.

Restricții și precizări

  • 1K200 0001 \leq K \leq 200 \ 000;
  • 1KN1 000 0001 \leq K \leq N \leq 1 \ 000 \ 000;
  • 1Hi1 0001 \leq H_i \leq 1 \ 000;
  • Pentru 50% din punctaj, 1KN5 0001 \leq K \leq N \leq 5 \ 000;
  • Pentru 80% din punctaj, 1KN200 0001 \leq K \leq N \leq 200 \ 000;

Exemplu

culori.in

6 4
1 1 2 1 3 2

culori.out

3

Explicație

O posibilă colorare a scândurilor folosind culorile 1, 2, 3 este: 1 2 1 3 1 2.
Există 33 secvențe: 1 1 2 1, 1 2 1 3 si 2 1 3 2 și orice secvență respectă condiția din enunț.

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