tetris

Time limit: 0.05s Memory limit: 2MB Input: tetris.in Output: tetris.out

La începutul lunii aprilie a fost lansată o nouă versiune a cunoscutului joc TETRIS\text{TETRIS}. Un pasionat jucător, Nicuşor, este nerăbdător să joace acest joc şi de aceea citeşte cu atenţie regulamentul:

  • jocul se desfăşoară pe o suprafaţă dreptunghiulară, împărţită în m×nm \times n pătrate identice cu latura de 1cm1 \text{cm}, dispuse pe mm linii şi nn coloane
  • jucătorul are la dispoziţie ss piese, fiecare piesă fiind un pătrat de latură 1cm1 \text{cm} pe care este înscris un număr natural nenul mai mic sau egal cu 99, reprezentând valoarea piesei
  • iniţial, toate cele ss piese sunt aşezate într-un şir, în afara suprafeţei de joc
  • numim turn un şir de piese aşezate în aceeaşi coloană, una deasupra celeilalte, ultima piesă aşezată în coloană fiind vârful turnului; înălţimea unui turn reprezintă numărul de piese ce alcătuiesc turnul
  • jocul începe cu aşezarea primei piese din şir pe suprafaţa de joc în pătratul din colţul-stânga jos
  • în continuare, se încearcă aşezarea celorlalte piese, în ordinea în care acestea apar în şir, după următoarele reguli:
    • se caută, pe suprafaţa de joc, de la stânga la dreapta, primul turn de înălţime strict mai mică decât mm care conţine în vârf cele mai multe piese cu aceeaşi valoare ca a piesei ce trebuie adăugate
      • dacă există un astfel de turn, piesa va fi plasată în vârful său
      • dacă nu există un astfel de turn, se caută, pe suprafaţa de joc, de la stânga la dreapta, primul turn ce conţine cele mai puţine piese. Piesa se aşează în vârful acestui turn numai dacă numărul de piese ce formează turnul este strict mai mic decât mm
  • dacă, imediat după adăugarea unei piese se obţine un turn care la vârf conţine 33 piese cu aceeaşi valoare, atunci toate cele 33 piese sunt eliminate de pe suprafaţa de joc
  • jocul se încheie atunci când pe suprafaţa de joc nu mai sunt locuri libere sau când se termină şirul de piese.

Exemplu. Dacă suprafaţa are configuraţia din Fig.1\text{Fig}. 1 şi trebuie adăugată piesa cu valoarea 66, atunci aceasta va fi aşezată în vârful turnului al 33-lea, deasupra piesei cu numărul 99, obţinându-se configuraţia din Fig.2\text{Fig}. 2; iar dacă valoarea piesei ce trebuie aşezată este 11 atunci aceasta se aşează deasupra primului turn ce conţine în vârf două valori 1 (Fig.3)1 \ (\text{Fig}. 3), după care cele 33 piese cu valoarea 11 se elimină de pe suprafaţa de joc (Fig.4)(\text{Fig}. 4)

Cerinţă

Scrieţi un program care să determine, pentru o anumită suprafaţă de joc şi un şir de piese dat, numărul pp de piese aşezate pe suprafaţa de joc, numărul tt de piese aflate pe suprafaţă la încheierea jocului, numărul hh de piese din cel mai înalt turn aflat pe suprafaţa de joc în timpul jocului.

Date de intrare

Fişierul de intrare tetris.in conţine pe prima linie cele trei numere naturale, mm, nn şi ss separate prin câte un spaţiu.
Pe următoarea linie se află şirul celor ss cifre nenule separate prin câte un spaţiu, reprezentând valorile celor ss piese, în ordinea în care vor fi adăugate pe suprafaţa de joc.

Date de ieşire

Fişierul de ieşire tetris.out conţine pe prima linie numărul pp, pe a doua linie numărul tt şi pe a treia linie numărul hh.

Restricţii şi precizări

  • 1m1 0001 \leq m \leq 1 \ 000
  • 1n91 \leq n \leq 9
  • 1s100 0001 \leq s \leq 100 \ 000
  • nu se aşează pe suprafaţă mai multe piese în acelaşi moment
  • se acordă 20%20\% din punctaj pentru determinarea valorii pp şi câte 40%40\% din punctaj pentru determinarea fiecăreia dintre valorile hh şi tt;

Exemplu

tetris.in

4 2 8
1 2 2 1 2 4 5 4

tetris.out

8
5
3

Explicaţie

Adăugarea pieselor modifică suprafaţa de joc astfel:

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