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

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


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

Domnul Gigi i-a cumpărat fiului său un joc de construcţii. Jocul este compus dintr-o tablă pătrată N x N (N linii şi N coloane) şi un număr de C cuburi colorate. Latura cubului este egală cu latura unui pătrat al tablei. Gigi junior aşează fiecare cub pe tablă, într-o ordine dată, suprapunând perfect o faţă a cubului peste pătratul dorit. Dacă la o anumită poziţie există deja cuburi atunci cubul se aşează deasupra celor existente. Jocul se termină când toate cuburile sunt aşezate pe tablă.
Domnul Gigi vede jocul în forma finală şi priveşte tabla din trei poziţii. Imaginea rezultată poate fi vedere de sus, vedere din stânga sau vedere din faţă.
Exemplu: pentru N=3, C=7 şi o aşezare a cuburilor ca în figura a), cele trei vederi sunt desenate în figurile:

Cerinţă

Să se realizeze un program care determină o vedere a tablei.

Date de intrare

Fişierul de intrare cuburi2.in conţine:
Pe prima linie trei numere naturale N C D, separate prin câte un spaţiu cu următoarea semnificaţie: N - dimensiunea tablei, C - numărul cuburilor, D -direcţia din care privim tabla (1 - vedere de sus, 2 - vedere din stânga, 3 - vedere din faţă ).
Pe următoarele C linii se găsesc câte trei numere naturale. Astfel, pe linia i+1 se află numerele Lin Col Culoare, separate prin spaţiu, reprezentând linia, coloana şi respectiv culoarea celui de-al i-lea cub care se plasează pe tablă.

Date de ieşire

Fişierul de ieşire cuburi2.out va conţine un tablou bidimensional cu NL linii şi N coloane reprezentând vederea tablei, conform direcţiei citite din fişierul de intrare.
Pe prima linie a fişierului se vor afişa cele două dimensiuni NL şi N separate prin spaţiu, iar pe următoarele NL linii câte N numere reprezentând codurile culorilor cuburilor vizibile, respectiv 0 (zero) pentru zonele fără cuburi.

Restricţii

1 <= N <= 50
1 <= C <= 50000

Nu sunt mai mult de 20 de cuburi suprapuse;
Culoarea unui cub este codificată printr-un număr între 1 şi 15;
Întotdeauna se pot plasa pe tablă toate cuburile date;
Fiecare linie din fişierele de intrare şi ieşire se termină prin marcaj de sfârşit de linie;

Exemple

cuburi2.incuburi2.outExplicaţii
3 7 2 1 1 3 1 1 1 3 2 2 1 3 1 1 3 2 1 3 1 1 3 3 4 3 3 0 0 1 0 0 1 0 0 3 0 2 Cel mai mare turn de cuburi se afla în poziţia (1,3) şi are înălţimea 4. Privind din partea stângă a tablei, din acest turn se văd doar ultimele două cuburi, restul fiind ascunse vederii de turnul din 2 cuburi de la poziţia (1,1).
Pe “coloana” 2 nu există cuburi, deci vom completa cu 0.
Pe coloana 3 se vede doar cubul din poziţia (3,2), în rest completăm cu 0 pâna la înălţimea maximă.

autor: Prof. Alin Burţa
propunător: Prof. Marinel Şerban
Liceul de Informatică “Grigore Moisil”
marinel_serban@yahoo.com
Articole recomandate
Probleme recomandate
De la ONI 2005: baschet, ingerasi, numar1, prieteni, robinson, aritma, cezar, joc8, bifo, joc9, pal, romeo, seceta, antena, avere, joc11, paianjen, suma2, vizibil, masina3, csir, lsort, patrat, ziduri, anticip, bsir, evantai, galax, spion, texan
De acelaşi autor: picnic, expresie, origami, magic3, suma, race, balls, pcod, cat, cai1, cub1, cifru, cub2, adun, dir, atac2, comp, mxl, joc19, cifru5, gradina1, joc21
Despre matrice: vopsea, harta, opmat, sarpe, light, magic2, tetris, origami, concurs, iepuras, tribile, criptmat, cutie, patrate, 3d, pajura, perspic, vecini2, livada, matrice3, kafka, erdos, grup, scor2, reteta2, rezervatie, scoici, tablou, game, stea, submatrix, cifru, jokes, oua, trecere, na, dotnet, renju, ghici, mere1, agitatie, lacuri, sotron, desen1, camion, ceas1, fibo, parc, excursia, matricea, zidar, joc6, log, concurs2, cladiri, dist, centru, robinson, joc8, joc9, romeo, adevar, soricel2, avere, joc11, vizibil, sah1, blockout, masina3, lsort, anticip, matrice1, evantai, spion, pereti, zumzi, roboti, placare, tabel, ocr, numere7, lacusta, becuri, sir5, flori, cartele, furnica, pavare, poarta, rj, peri, poligon2, sablon1, gradina, matrice4, poartas, balcon, submdisj, v, matrx, figura, neuroni, raze, roboti1, bila, iepurasi, colorare, mat, submatrix1, simetric1, plaja, xor2, guess, albine1, joct, alfabetar, stele, tablou1, alpinist, cladire, cri, grupe2, el, mahjong, sir9, acces, tort1, joc17, mesaj3, zar1, xy, poteci, avioane, broscute, safeu, acoperire1, radioactiv, robot4, lcdr, jb, slide, maxtri, dame, triunghi4, elicop, compresie, mijloc, cubulete, romb, medalion, bile6, zigzag, puncte5, intersectii, matd3, matrixdel, speed, seif1, traseu2, incadrare, betasah, zona, latin, zmax, amestec, sudoku1, gradina1, spider, zone, bemo, rombul, interclasare, rebus1, tabla, arrows, pseudobil, patrat1, rascoala, harta2, relatii, lasere, defrag, matcnt, ssdj, cript, ssk, teren1, fence, cifre6
Despre tablou: cuburi1, zuzu, robinson, joc8, joc9, suma2, vizibil, masina3, cub2, lacusta, furnica, numere8, copaci1, ogorul, pesti, stelar, macheta, mxl, segmente, joc19, triunghi4, parc1, interclasare, rascoala, cifre5, monede2, betisoare, qvect, traseu3
surse trimise | ajutor