Canaste

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

Pasionat de jocurile de cărți în echipă, marele Idum a început să se antreneze de unul singur pentru ele. Unul din jocurile lui preferate se numește canastă, joc în care o parte semnificativă din strategie se învârte în jurul obținerii canastelor: grupe de șapte (77) cărți care au aceeași valoare, sau în completare jokeri. O proprietate necesară a canastelor este aceea că fiecare canastă conține mai multe valori în componența ei decât jokeri, cu excepția canastelor formate doar din jokeri. Pentru a se antrena eficient, Idum se concentrează pe trei scenarii diferite pe un pachet de NN cărți:

  1. Date fiind cele NN cărți de joc, care este numărul maxim de canaste posibile?
  2. Date fiind cele NN cărți de joc și știind că toate canastele formate din valori de 11 (putând conține și jokeri, dar neapărat valori de 11) vor valora două puncte, iar celelalte canaste un singur punct, care este punctajul maxim posibil?
  3. Date fiind cele N cărți de joc și știind că toate canastele formate din jokeri vor valora 33 puncte, cele din valori de 11 (putând conține și jokeri, dar neapărat valori de 11) vor valora două puncte, iar celelalte canaste un singur punct, care este punctajul maxim posibil?

Cerință

Imud, fiind obosit după numărarea celor NN cărți de joc și transcrierea lor pe calculator, vă roagă să îl ajutați cu răspunsurile pentru cele trei scenarii date.

Date de intrare

Datele de intrare conțin, pe prima linie, două valori:

  • NN, numărul de cărți de joc din pachetul dat;
  • CC, un număr de la 11 la 33, ce reprezintă numărul cerinței pentru acest test.

Pe următoarea linie urmează cele NN cărți de joc, fiecare descrisă printr-o valoare ViV_i care poate fi:

  • nenulă, reprezentând valoarea cărții de joc cu indicele ii,
  • sau 00, în cazul în care cartea cu numărul ii este un joker.

Date de ieșire

Afișați răspunsul pentru scenariul dat pe o linie.

Restricții

  • 2n100 0002 \leq n \leq 100 \ 000;
  • 1C31 \leq C \leq 3;
  • 0Vi100 000 1iN0 \leq V_i \leq 100 \ 000 \ \forall 1 \leq i \leq N, unde jokerii sunt marcați cu 00;
  • Vom nota cu JJ numărul jokerilor din test.
# Punctaj Restricții
1 3 Vi2 1iN,  C=1V_i \leq 2\ \forall 1 \leq i \leq N,\; C=1
2 3 Vi2 1iN,  C=2V_i \leq 2\ \forall 1 \leq i \leq N,\; C=2
3 4 Vi2 1iN,  C=3V_i \leq 2\ \forall 1 \leq i \leq N,\; C=3
4 5 J1 000,J \leq 1 \ 000, Vi4 1iN,  C=1V_i \leq 4\ \forall 1 \leq i \leq N,\; C=1
5 5 J1 000,J \leq 1 \ 000, Vi4 1iN,  C=2V_i \leq 4\ \forall 1 \leq i \leq N,\; C=2
6 7 J1 000,J \leq 1 \ 000, Vi4 1iN,  C=3V_i \leq 4\ \forall 1 \leq i \leq N,\; C=3
7 6 Vi14 1iN,  C=1V_i \leq 14\ \forall 1 \leq i \leq N,\; C=1
8 6 Vi14 1iN,  C=2V_i \leq 14\ \forall 1 \leq i \leq N,\; C=2
9 8 Vi14 1iN,  C=3V_i \leq 14\ \forall 1 \leq i \leq N,\; C=3
10 5 J100,J \leq 100, Vi100 1iN,  C=1V_i \leq 100\ \forall 1 \leq i \leq N,\; C=1
11 5 J100,J \leq 100, Vi100 1iN,  C=2V_i \leq 100\ \forall 1 \leq i \leq N,\; C=2
12 6 J100,J \leq 100, Vi100 1iN,  C=3V_i \leq 100\ \forall 1 \leq i \leq N,\; C=3
13 5 Vi100 1iN,  C=1V_i \leq 100\ \forall 1 \leq i \leq N,\; C=1
14 5 Vi100 1iN,  C=2V_i \leq 100\ \forall 1 \leq i \leq N,\; C=2
15 6 Vi100 1iN,  C=3V_i \leq 100\ \forall 1 \leq i \leq N,\; C=3
16 3 Vi1 000 1iN,  C=1V_i \leq 1 \ 000\ \forall 1 \leq i \leq N,\; C=1
17 3 Vi1 000 1iN,  C=2V_i \leq 1 \ 000\ \forall 1 \leq i \leq N,\; C=2
18 3 Vi1 000 1iN,  C=3V_i \leq 1 \ 000\ \forall 1 \leq i \leq N,\; C=3
19 3 C=1C=1
20 4 C=2C=2
21 5 C=3C=3

Exemplul 1

stdin

22 1
1 1 0 0 1 1 0 1 2 2 2 1 1 2 3 3 3 0 0 0 0 1

stdout

2

Explicație

C=1C=1, deci ne interesează numărul maxim de canaste posibile. Putem crea o canastă de 11 fără să folosim jokeri, și una de 22 folosind trei jokeri. Nu putem crea o canastă de 33 folosind patru jokeri, deoarece aceasta ar avea mai mulți jokeri decât valori, lucru care nu este permis. O altă soluție pentru două canaste ar fi să avem o canastă numai din 11 și una numai din jokeri. O a treia soluție ar fi să avem două canaste, fiecare cu câte patru de 11 si câte trei jokeri.

Exemplul 2

stdin

24 2
1 4 1 4 4 0 0 1 1 4 0 0 0 3 3 2 2 2 2 2 3 3 4 3

stdout

3

Explicație

C=2C=2, deci ne interesează scorul maxim când canastele de 11 sunt mai valoroase. Putem crea o canastă de 11 cu trei jokeri, și una de 22 folosind doi jokeri, pentru scorul total de 3. O altă soluție ar fi să avem o canastă din 22 și una din 33, fiecare cu câte doi jokeri, pentru un scor de 22.

Exemplul 3

stdin

25 3
1 1 0 0 1 1 0 1 2 2 2 1 1 2 3 3 3 0 0 0 0 1 0 0 0

stdout

6

Explicație

C=3C=3, deci ne interesează scorul maxim când canastele de 11 și de jokeri sunt mai valoroase. Putem crea o canastă de 11 fără să folosim jokeri, și una de 22 folosind trei jokeri, pentru scorul total de 3. O altă soluție (mai bună) ar fi să avem o canastă numai din 11 și una numai din jokeri, alături de o canastă cu patru de 22 și 33 jokeri, pentru un scor total de 66.

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