La începutul lunii aprilie a fost lansată o nouă versiune a cunoscutului joc . 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 pătrate identice cu latura de , dispuse pe linii şi coloane
- jucătorul are la dispoziţie piese, fiecare piesă fiind un pătrat de latură pe care este înscris un număr natural nenul mai mic sau egal cu , reprezentând valoarea piesei
- iniţial, toate cele 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 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
- se caută, pe suprafaţa de joc, de la stânga la dreapta, primul turn de înălţime strict mai mică decât care conţine în vârf cele mai multe piese cu aceeaşi valoare ca a piesei ce trebuie adăugate
- dacă, imediat după adăugarea unei piese se obţine un turn care la vârf conţine piese cu aceeaşi valoare, atunci toate cele 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 şi trebuie adăugată piesa cu valoarea , atunci aceasta va fi aşezată în vârful turnului al -lea, deasupra piesei cu numărul , obţinându-se configuraţia din ; iar dacă valoarea piesei ce trebuie aşezată este atunci aceasta se aşează deasupra primului turn ce conţine în vârf două valori , după care cele piese cu valoarea se elimină de pe suprafaţa de joc
Cerinţă
Scrieţi un program care să determine, pentru o anumită suprafaţă de joc şi un şir de piese dat, numărul de piese aşezate pe suprafaţa de joc, numărul de piese aflate pe suprafaţă la încheierea jocului, numărul 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, , şi separate prin câte un spaţiu.
Pe următoarea linie se află şirul celor cifre nenule separate prin câte un spaţiu, reprezentând valorile celor 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 , pe a doua linie numărul şi pe a treia linie numărul .
Restricţii şi precizări
- nu se aşează pe suprafaţă mai multe piese în acelaşi moment
- se acordă din punctaj pentru determinarea valorii şi câte din punctaj pentru determinarea fiecăreia dintre valorile şi ;
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: