cuburi

Time limit: 0.05s Memory limit: 4MB Input: cuburi.in Output: cuburi.out

Domnul Gigi i-a cumpărat fiului său un joc de construcţii. Jocul este compus dintr-o tablă pătrată NNN \cdot N (NN linii şi NN coloane) şi un număr de CC 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=7N=3, C=7 şi o aşezare a cuburilor ca în figura a), cele trei vederi sunt desenate în figurile: b (vedere de sus), c (vedere din stânga), respectiv d (vedere din faţă)

Date de intrare

Fişierul de intrare cuburi.in conţine:

Pe prima linie trei numere naturale N,C,DN,C,D, cu următoarea semnificaţie: NN - dimensiunea tablei, CC - numărul cuburilor, DD - direcţia din care privim tabla (11 - vedere de sus, 22 - vedere din stânga, 33 - vedere din faţă ).

Pe următoarele CC linii se găsesc câte trei numere naturale. Astfel, pe linia i+1i+1 se află numerele Lin, Col, Culoare\text{Lin, Col, Culoare}, separate prin spaţiu, reprezentând linia, coloana şi respectiv culoarea celui de-al ii - lea cub care se plasează pe tablă.

Date de ieșire

Fişierul de ieşire cuburi.out va conţine un tablou bidimensional cu NLNL linii şi NN 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 NLNL şi NN separate prin spaţiu, iar pe următoarele NLNL linii câte NN numere reprezentând codurile culorilor cuburilor vizibile, respectiv 00 (zero) pentru zonele fără cuburi.

Restricții și precizări

  • 1N501 \leq N \leq 50
  • 1C50 0001 \leq C \leq 50 \ 000
  • Nu sunt mai mult de 2020 de cuburi suprapuse
  • Culoarea unui cub este codificată printr-un număr între 11 şi 1515;
  • Î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

cuburi.in

3 7 2 
1 1 3 
1 1 1 
3 2 2 
1 3 1 
1 3 2 
1 3 1
1 3 3

cuburi.out

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)(1,3) şi are înălţimea 44. Privind din partea stângă a tablei, din acest turn se văd doar ultimele două cuburi, restul fiind ascunse vederii de turnul din 22 cuburi de la poziţia (1,1)(1,1).
Pe coloana 22 nu există cuburi, deci vom completa cu 00.
Pe coloana 33 se vede doar cubul din poziţia (3,2)(3,2), în rest completăm cu 00 pâna la înălţimea maximă

Log in or sign up to be able to send submissions!