arc

Time limit: 0.1s Memory limit: 4MB Input: arc.in Output: arc.out

Irinuca a descoperit un nou joc pe calculator. Pe ecran sunt plasate pe o linie nn bile colorate. Culorile bilelor sunt codificate cu numere naturale. Un subșir de bile alăturate având toate aceeași culoare se numește secvență. O secvență va conține numărul maxim de bile alăturate având aceeași culoare. Lungimea unei secvențe este egală cu numărul de bile din care este compusă.

Irinuca are la dispoziție un arc special. Trăgând cu arcul asupra unei bile, dacă aceasta face parte dintr-o secvență de lungime cel puțin egală cu 33, întreaga secvență va fi eliminată, iar bilele din dreapta secvenței se vor deplasa spre stânga pentru a umple „golul” lăsat de bilele eliminate. Dacă imediat în stânga și în dreapta secvenței eliminate se găseau două secvențe având aceeași culoare și dacă secvența obținută din unirea acestora după eliminare are o lungime cel puțin egală cu 33, atunci va fi și ea eliminată la rândul ei. Procesul continuă până când secvențele din stânga și dreapta unei secvențe tocmai eliminate au culori diferite sau până când lungimea secvenței obținute prin alăturare este mai mică decât 33 sau până când în stânga ori în dreapta unei secvențe eliminate nu se mai găsesc bile sau până sunt eliminate toate bilele de pe ecran.

Scopul jocului este de a elimina cât mai multe bile de pe ecran. Cum Irinuca încă nu se pricepe prea bine la acest joc și-a stabilit o strategie. Va trage cu arcul întotdeauna asupra unei bile ce face parte din secvența de lungime maximă de pe ecran. Dacă sunt mai multe astfel de secvențe, ea va alege cea mai din stânga secvență de lungime maximă. Dacă toate secvențele de pe ecran au lungimi mai mici decât 33, Irinuca nu va mai putea elimina nici una din ele și jocul se încheie.

De exemplu, dacă șirul inițial de bile este
5 1 3 3 2 2 2 2 3 1 1 5 6 4 4 4 4 7
Irinuca va acționa asupra unei bile de culoare 22. Prin eliminare se obține șirul de bile
5 1 3 3 3 1 1 5 6 4 4 4 4 7
din care se elimină și secvența de bile de culoare 33 obținându-se șirul de bile
5 1 1 1 5 6 4 4 4 4 7
din care se elimină și secvența de culoare 11.
5 5 6 4 4 4 4 7
Cum secvența de bile de culoare 55 nu este suficient de lungă, aceasta nu se mai elimină. Acum Irinuca trage asupra unei bile de culoare 44 și obține
5 5 6 7
dar cum în stânga și în dreapta secvenței eliminate sunt secvențe de culori diferite, nu se va mai elimina nici o secvență. Jocul se încheie deoarece nu mai există nici o secvență de lungime cel puțin 33 asupra căreia să se poată trage.

Cerinţă

Cunoscând numărul de bile și culorile fiecărei bile de pe ecran se cere să se determine:

  1. numărul de secvențe de bile care se aflau inițial pe ecran;
  2. numărul de bile care rămân neeliminate de pe ecran și culorile bilelor rămase în ordine pe ecran la finalul jocului.

Date de intrare

Fişierul de intrare arc.in conţine pe prima linie un număr natural VV. Pentru toate testele de intrare, numărul VV poate avea doar valoarea 11 sau 22.
A doua linie conține un număr natural nn reprezentând numărul de bile, iar a treia linie conține nn numere naturale c1c_1, c2c_2, \dots, cnc_n separate prin câte un spațiu, reprezentând culorile celor nn bile de pe ecran.

Date de ieşire

Dacă valoarea lui VV este 11, se va rezolva numai punctul 1 din cerință.
În acest caz, în fişierul de ieşire arc.out se va scrie un singur număr natural n1n_1, reprezentând numărul de secvențe de bile aflate inițial pe ecran.

Dacă valoarea lui VV este 22, se va rezolva numai punctul 2 din cerință.
În acest caz, în fişierul de ieşire arc.out se va scrie pe prima linie un singur număr natural n2n_2, reprezentând numărul de bile care rămân neeliminate de pe ecran la finalul jocului, iar pe următoarele n2n_2 linii se va scrie câte un număr natural reprezentând în ordine culorile bilelor rămase neeliminate la finalul jocului.

Dacă la finalul jocului nu mai rămâne nici o bilă neeliminată, fișierul de ieșire va conține pe prima sa linie valoarea 00.

Restricţii şi precizări

  • 1n10 0001 \leq n \leq 10\ 000
  • 1c1,c2,,cn100 0001 \leq c_1, c_2, \dots, c_n \leq 100\ 000
  • Pentru rezolvarea corectă a punctului 1 se acordă 20 de puncte, iar pentru punctul 2 se acordă 80 de puncte.

Exemplul 1

arc.in

1
18
5 1 3 3 2 2 2 2 3 1 1 5 6 4 4 4 4 7

arc.out

10

Explicație

V=1V = 1, deci pentru acest test se rezolvă doar punctul 1.
Secvențele sunt (5)(5), (1)(1), (3,3)(3,3), (2,2,2,2)(2,2,2,2), (3)(3), (1,1)(1,1), (5)(5), (6)(6), (4,4,4,4)(4,4,4,4), (7)(7).

Exemplul 2

arc.in

2
18
5 1 3 3 2 2 2 2 3 1 1 5 6 4 4 4 4 7

arc.out

4
5
5
6
7

Explicație

V=2V = 2, deci pentru acest test se rezolvă doar punctul 2.

Exemplul 3

arc.in

2
15
1 2 2 2 2 1 1 3 3 3 4 4 4 4 3

arc.out

0

Explicație

V=2V = 2, deci pentru acest test se rezolvă doar punctul 2.

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