O suprafaţă dreptunghiulară de înălţime şi lăţime unităţi trebuie acoperită perfect (placată) prin utilizarea unor plăci de formă dreptunghiulară de dimensiune sau , unde este un număr natural nenul. Suprafaţa dată poate fi privită ca un caroiaj cu pătrăţele egale cu unitatea.
O placare corectă a suprafeţei iniţiale se memorează într-un fişier text folosind următoarele convenţii de codificare:
- Pe prima linie se precizează dimensiunile şi ale suprafeţei;
- O placă dreptunghiulară de laţime este codificată prin numărul natural , iar o placă de înalţime se codifică prin numărul întreg ;
- Convenim că placa având ambele dimensiuni egale cu unitatea să se codifice cu valoarea ;
- Pe fiecare din cele linii ale codificării se află câte un şir de valori întregi reprezentând, în ordine de la stânga la dreapta, codurile plăcilor care se găsesc amplasate începând de la respectiva linie;
- Codul strict mai mare ca al unei plăci orizontale apare o singură dată pe linia corespunzătoare pe care se află placa, iar codul al unei plăci verticale va apare o singură dată şi anume pe prima linie de la care placa respectivă este amplasată în jos pe o anumită coloană a suprafeţei;
- Dacă pe o anumită linie a suprafeţei nu există astfel de coduri de plăci, atunci pe respectiva linie din fişier este o singură valoare de .
Folosind codificarea unei placări a suprafeţei iniţiale, se poate determina imaginea acestei placări sub forma unui tablou bidimensional , cu linii şi coloane, unde reprezintă valoarea absolută a codului plăcii care se suprapune peste pătrăţelul de pe linia şi coloana .
Cerinţă
Cunoscând codificarea unei placări corecte a suprafeţei date să se obţină imaginea acestei placări (matricea de valori corespunzătoare codificării suprafeţei).
Date de intrare
Fişierul de intrare placare.in
are următoarea structură:
- pe prima linie valorile naturale și , separate printr-un spaţiu, unde este înălţimea suprafeţei și este lăţimea suprafeţei.
- pe fiecare din următoarele linii se află un şir de valori întregi, separate prin câte un spaţiu, reprezentând codificarea respectivei linii a placării.
Date de ieşire
În fişierul de ieşire placare.out
se va tipări tabloul bidimensional ce reprezintă imaginea placării, compus din linii, pe fiecare dintre ele aflându-se valori naturale separate prin câte un spaţiu, cu semnificaţia din enunţ.
Restricţii şi precizări
- Pentru din teste, ;
- Dimensiunea sau a unei plăci este aleasă astfel încât acoperirea obţinută să nu depăşească înălţimea sau lățimea a suprafeţei.
- Datele din fişierul de intrare sunt corecte în sensul că reprezintă codificarea unei acoperiri a zonei dreptunghiulare de dimensiuni şi .
Exemplul 1
placare.in
4 4
-4 1 1 1
1 2
2 1
3
placare.out
4 1 1 1
4 1 2 2
4 2 2 1
4 3 3 3
Explicație
Valoarea codifică o placă de înălţime şi lăţime plasată începând din pătratul de coordonate şi până în pătratul de coordonate .
Valoarea de pe ultima linie a codificării desemnează o placă de lăţime şi înălţime , plasată orizontal, începând din pătrăţelul de coordonate .
Exemplul 2
placare.in
3 2
-3 -2
0
1
placare.out
3 2
3 2
3 1