Fişierul intrare/ieşire:cuburi3.in, cuburi3.outSursăONI 2005 clasa a 8-a
AutorAlin BurtaAdăugată deStefanPiturStefan Pitur StefanPitur
Timp execuţie pe test0.1 secLimită de memorie2048 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Cuburi3 (clasa a 8-a)

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 cuburi3.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 cuburi3.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.incuburi3.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ă.

Trebuie sa te autentifici pentru a trimite solutii. Click aici