Domnul Gigi i-a cumpărat fiului său un joc de construcţii. Jocul este compus dintr-o tablă pătrată ( linii şi coloane) şi un număr de 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 ş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 , cu următoarea semnificaţie: - dimensiunea tablei, - numărul cuburilor, - direcţia din care privim tabla ( - vedere de sus, - vedere din stânga, - vedere din faţă ).
Pe următoarele linii se găsesc câte trei numere naturale. Astfel, pe linia se află numerele , separate prin spaţiu, reprezentând linia, coloana şi respectiv culoarea celui de-al - 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 linii şi 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 şi separate prin spaţiu, iar pe următoarele linii câte numere reprezentând codurile culorilor cuburilor vizibile, respectiv (zero) pentru zonele fără cuburi.
Restricții și precizări
- Nu sunt mai mult de de cuburi suprapuse
- Culoarea unui cub este codificată printr-un număr între şi ;
- Î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 şi are înălţimea . Privind din partea stângă a tablei, din acest turn se văd doar ultimele două cuburi, restul fiind ascunse vederii de turnul din cuburi de la poziţia .
Pe coloana nu există cuburi, deci vom completa cu .
Pe coloana se vede doar cubul din poziţia , în rest completăm cu pâna la înălţimea maximă