Fruity

Time limit: 1s Memory limit: 64MB Input: Output:

Cerință

Ai NN fructe de KK feluri. Știi fiecare fruct de ce tip este (un număr pozitiv până în KK).

Vrei să cumperi cutii pentru a depozita fructele.
Există totuși trei restricții legat de cum poți depozita fructele:

1.\qquad 1. Dacă două fructe sunt de același tip, trebuie să stea în aceași cutie
2.\qquad 2. În fiecare cutie poți pune maxim 22 tipuri diferite de fructe.
3.\qquad 3. Dacă o cutie are capacitatea XX, în ea încap maxim XX fructe.

Realizezi că poți să cumperi doar cutii de aceași mărime, iar o cutie de mărime XX te costă XX bani.
În magazin există oricâte cutii de orice mărime.

Care este prețul minim pentru a putea să depozitezi toate fructele ?

Date de intrare

Pe prima linie se găsesc două numere întregi, NN și KK.
Pe următoarea linie se găsesc NN valori, fructele pe care trebuie să le depozitezi.

Date de ieșire

Pe prima linie se va afișa un singur număr, care este pretul minim pentru a depozita fructele ?

Restricții și precizări

  • 1N21051 \leq N \leq 2*10^5;
  • 1K50001 \leq K \leq 5000;
  • 11 \leq tipul fructelor citite K\leq K;

Subtaskuri

  • Pentru 15p:N,K615p : N,K \leq 6
  • Pentru alte 40p:K20040p : K \leq 200

Exemplul 1

stdin

6 4
1 2 1 4 4 4

stdout

6

Explicație

Se cumpără 22 cutii de mărime 33. Fructele 11 și 22 se pun în prima cutie, iar fructele de tip 44 se pun în a doua cutie.
Un cost total de 23=62 \cdot 3 = 6.

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