Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | tetris.in, tetris.out | Sursă | ad-hoc |
Autor | Autor necunoscut | Adăugată de | |
Timp execuţie pe test | 1.5 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Tetris
Imagineaza-ti ca te afli in fata jocului de Tetris. Bineinteles scopul tau este de "a sparge" toate recordurile. Dar fara un algoritm bun nu puteti face nimic.
Asa ca trebuie sa gasiti o acoperire cat mai buna a suprafetei de joc, astfel incat sa asezati piesele in ordinea aparitiei lor. Adica o piesa nu poate fi asezata pe o pozitie decat daca:
- piesa de dinaintea ei a fost asezata
- piesa mai incape pe suprafata de joc
Piesele sunt plasate intr-o anumita pozitie fiind lasate sa cada libere de undeva de deasupra suprafetei de joc.
Pentru simplificare, consideram ca piesele sunt de forma patrata.
Date de intrare
Fisierul de intrare tetris.in contine pe prima linie numarul n de linii si numarul m de coloane ale suprafetei de joc, despartite printr-un spatiu. Apoi, pe linia a doua se vor specifica laturile fiecarui patrat in ordinea aparitiei lor. Linia se va termina cu un 0.
Date de iesire
Fisierul de iesire tetris.out, contine pe prima linie numarul maxim de patrate acoperite din suprafata de joc. Pe urmatoarele linii va fi afisata suprafata de joc sub forma unei matrici, unde fiecare patrat este marcat prin numarul de aparitie. Pozitiile neocupate sunt marcate prin numarul 0. Nu este obligatoriu ca toate patratele sa fie asezate.
Restrictii
- Toate numerele din fisierul de intrare sunt mai mici decat 30.
Exemplu
table(example). |_. tetris.in |_. tetris.out |
|4 4
1 2 2 1 2 1 2 0
15 6 0 3 3 5 5 3 3 5 5 2 2 1 4 2 2 |
Explicatie
...