.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » tetris3

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
tetris3


Timp maxim de execuţie / test:
0.3s
Memorie totala disponibilă / stivă:
4MB / 2MB

Gigel are instalat pe calculator un joc numit Tetris, în care pe o zonă dreptunghiulară cad succesiv piesele dintr-un şir de piese. Zona de joc este codificată sub forma unei table cu N linii şi M coloane. Liniile le considerăm numerotate de la 1 la N de jos în sus, iar coloanele de la 1 la M şi de la stânga la dreapta. Toate piesele sunt de forma unor pătrate. Ele intră în zona de joc începând cu linia N şi cad către linia 1, deplasarea făcându-se pe verticală în cadrul aceloraşi coloane. Dacă în cădere întâlneşte o piesă introdusă anterior în joc atunci ea se va opri exact deasupra ei.
O piesa intră în joc doar dacă poate fi introdusă complet pe zona delimitată de cele N linii şi M coloane.
În desenul alăturat zona de joc are 7 linii şi 8 coloane şi în joc au intrat pe rând zece piese, numerotate de la 1 la 10, în ordinea introducerii lor pe tablă.



Un joc Tetris se termină când toate piesele din şir s-au aşezat pe tablă sau când piesa care urmează nu poate fi introdusă în joc.

Cerinţă

Realizaţi un program care determină:
a) Numărul de ordine maxim al unei linii ocupată de o piesă;
b) Determinaţi numărul maxim de coloane alăturate ocupate de piese, în cadrul liniei determinate la punctul a).

Date de intrare

Fişierul tetris3.in conţine pe prima linie două numere naturale N şi M reprezentând numărul de linii, respectiv numărul de coloane ale zonei de joc. Următoarele linii conţin perechi de numere naturale, fiecare descriind câte o piesă în ordinea intrării ei în joc. Primul număr din pereche reprezintă lungimea laturii piesei, iar cel de al doilea reprezintă numărul de ordine al coloanei pe care se încearcă plasarea laturii stângi a piesei. Numerele de pe fiecare linie sunt separate printr-un singur spaţiu.

Date de ieşire

În fişierul tetris3.out se va scrie pe prima linie numărul maxim al liniei ocupate de o piesă, iar pe a doua linie numărul maxim de coloane alăturate ocupate de piese, din cadrul acestei linii.

Restricţii

• 1 ≤ toate numerele din fişierul de intrare ≤ 1000
• Se asigură că pentru toate testele cel puţin prima piesă poate fi aşezată pe tablă
• Se asigură că numărul de ordine al coloanei pe care se încearcă plasarea laturii stângi a piesei este ≤ M
• Fişierul de intrare conţine cel mult 50000 de linii.
• Se acordă 60% din punctajul unui test, dacă pe prima linie a fişierului de ieşire se află un singur număr şi el reprezintă răspunsul corect la prima cerinţă. Dacă fişierul de ieşire conţine două linii şi pe a doua linie se află un singur număr ce reprezintă răspunsul corect la a doua cerinţă se obţine 40% din punctajul testului.

Exemple

tetris3.intetris3.outExplicaţii
7 8 1 1 2 2 2 7 1 6 3 6 3 3 1 8 2 5 1 8 2 3 3 3 7 4 Exemplu din desen descrie ordinea în care au intrat piesele în joc. Linia 7 este linia cu număr de ordine maxim ce este acoperită cu piese. Piesele 8 şi 10 acoperă această linie, pe o secvenţă de 4 coloane alăturate, iar piesa 9 acoperă doar o coloană, deci secvenţa maximă este de lungime 4.
Piesa 11 nu a mai putut fi introdusă în joc.

autor: Prof. Dana Lica
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la ONIGIM 2013: cursa1, patrate7, secvp, latin, swap, zmax, extraprime, greieri, onigim, divizori1, remi1, amestec, sudoku1, eoliene
De acelaşi autor: compus, taste, arce, balbe, drept, scor, sume3, spair, bitslang, police, tree, reteta2, farfurii, caramele, apm, maraton, masina1, bomboane, soldati1, concurs1, puncte, pipe, camion, imax, litoral, dreptc, bal, prefix1, tablite, lanturi, loto, bila, popic, activ, game1, pitag, secv9, divk, taler, bdotcom, oak, ozn1, optim, puncte5, swap, monede2, ssk
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
surse trimise | ajutor