Atenție! Aceasta este o versiune veche a paginii., scrisă la 2016-01-09 20:46:31.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire placare.in, placare.out Sursă OJI 2009 clasa a 9-a
Autor Radu Vișinescu Adăugată de avatar ReksioCroft Staicu Octavian Florin ReksioCroft
Timp de execuție pe test 0.05 sec Limită de memorie 640 KB
Scorul tău N/A Dificultate N/A
open book Poți vedea testele pentru această problemă accesând atașamentele .

Placare (clasa a 9-a)

O suprafață dreptunghiulară de înălțime N și lățime M unități trebuie acoperită perfect (placată) prin utilizarea unor plăci de formă dreptunghiulară de dimensiune 1xP sau Px1, unde P este un număr natural nenul. Suprafața dată poate fi privită ca un caroiaj cu NxM 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 N și M ale suprafeței;
  • o placă dreptunghiulară de lățime P este codificată prin numărul natural P, iar o placă de înalțime P se codifică prin numărul întreg –P;
  • convenim că placa având ambele dimensiuni egale cu unitatea să se codifice cu valoarea 1;
    pe fiecare din cele N 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 P strict mai mare ca 1 al unei placi orizontale apare o singură dată pe linia corespunzătoare pe care se află placa, iar codul –P 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 anumita 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 0.
    Folosind codificarea unei placări a suprafeței inițiale, se poate determina imaginea acestei placări sub forma unui tablou bidimensional A, cu N linii și M coloane, unde Aij = valoarea absolută a codului plăcii care se suprapune peste pătrățelul de pe linia i și coloana j.

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 va avea pe prima linie valorile naturale N si M, separate printr-un spațiu, unde N este înălțimea suprafeței, M este lățimea suprafeței. Pe fiecare din următoarele N 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 N linii, pe fiecare dintre ele aflându-se M valori naturale separate prin câte un spațiu, cu semnificația din enunț.

Restricții

  • 1 ≤ N, M ≤ 300
  • pentru 80% din teste 1 ≤ N, M ≤ 100
  • dimensiunea P sau –P a unei plăci este aleasă astfel încât acoperirea obținută să nu depășească înălțimea N sau latimea M a suprafeței.
  • datele din fișierul de intrare sunt corecte în sensul că reprezintă codificarea unei acoperiri a zonei dreptunghiulare de dimensiuni N și M.

Exemplu

placare.in placare.out placare.in placare.out
4 4
-4 1 1 1
1 2
2 1
3
4 1 1 1
4 1 2 2
4 2 2 1
4 3 3 3
3 2
-3 -2
0
1
3 2
3 2
3 1

Explicație

Pentru primul exemplu, valoarea -4 codifică o placă de înălțime 4 și lațime 1 plasată începând din pătratul de coordonate (1,1) și pînă în pătratul de coordonate (4,1). Valoarea 3 de pe ultima linie a codificării desemnează o placă de lățime 3 și înălțime 1, plasată orizontal, începând din pătrățelul de coordonate (4,2).

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 3 categorii