Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | cuburi3.in, cuburi3.out | Sursă | ONI 2005 clasa a 8-a |
|---|---|---|---|
| Autor | Alin Burța | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 2048 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Cuburi3 (clasa a 8-a)
http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=648
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:
Cerinta
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;
Exemplu
| cuburi3.in | cuburi3.out |
|---|---|
| 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 |
Explicație
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ă.


Poți vedea testele pentru această problemă accesând