La o fabrică, se montează tipuri de componente (diode, circuite integrate, tranzistoare etc.), identificate prin codurile , pe plăci cu circuite electronice.
O placă este formată din mai multe zone, fiecare zonă având una sau mai multe componente de acelaşi tip şi poate fi reprezentată printr-o matrice, notată . Pentru fiecare componentă electronică, se pot utiliza mai multe exemplare pe placă. Fiecare exemplar ocupă pe placă un anumit număr de linii şi coloane cu poziţii consecutive. Pentru un nou model de placă electronică, se obţin mai multe variante, ce diferă între ele prin dispunerea componentelor pe zone. În toate variantele, numărul de exemplare din fiecare componentă are aceeaşi valoare.
Cerinţă
Având la dispoziţie o variantă a plăcii , pentru care se cunosc dimensiunile, exprimate în număr de linii şi număr de coloane, dispunerea componentelor pe placa şi datele iniţiale ale componentelor din modelul plăcii, să se verifice dacă toate componentele electronice de pe placa sunt plasate corect, conform modelului dat.
Date de intrare
Fişierul de intrare placa.in
conţine pe prima linie două numere naturale şi , ce reprezintă numărul de linii şi numărul de coloane ale plăcii . Pe următoarele linii din fişier, se află câte numere naturale reprezentând în ordine configuraţia plăcii (tipurile componentelor de pe fiecare linie a plăcii ).
Pe linia din fişier se află un număr natural (reprezentând numărul de tipuri de componente utilizate în modelul plăcii), iar pe următoarele linii se descriu caracteristicile lor. Pe fiecare dintre cele linii din modelul plăcii, se află câte 3 numere naturale nenule, reprezentând numărul de exemplare al componentei, numărul de linii şi numărul de coloane ocupate de fiecare exemplar al componentei pe placă (linia corespunde componentei , linia corespunde componentei etc.).
Date de ieşire
Fişierul de ieşire placa.out
conţine pe prima linie codurile componentelor pentru care toate exemplarele sunt plasate pe placă conform modelului, în ordine crescătoare a valorilor şi separate între ele prin câte un spaţiu. Linia a doua din fişier conţine în ordine crescătoare următoarele numere, separate între ele prin câte un spaţiu:
- codurile componentelor pentru care există cel puţin un exemplar ce nu este plasat pe placă conform modelului
- codurile componentelor pentru care numărul de exemplare de pe placă nu corespunde cu numărul de exemplare din modelul plăcii.
Dacă pentru toate componentele, exemplarele plasate pe placă corespund modelului, linia a doua din fişier conţine numărul .
Restricţii şi precizări
- Fiecare exemplar al unei componente electronice ocupă cel puţin coloane sau linii pe placă
- Pe placa există cel puţin o componentă plasată conform modelului plăcii şi nu există zone libere
Exemplul 1
placa.in
2 4
2 2 1 3
2 2 1 3
3
1 1 2
1 2 2
1 1 2
placa.out
2
1 3
Explicație
Componenta are un exemplar pe placa, ce ocupa linii si coloane,conform modelului
Componentele şi au cate un exemplar dar care care nu este plasat conform modelului (ocupa linii şi coloana in loc de linie si coloane)
Exemplul 2
placa.in
3 4
1 4 4 2
1 4 4 2
5 5 5 5
5
1 2 1
1 2 1
1 1 2
1 1 2
2 1 2
placa.out
1 2 5
3 4
Explicație
Componentele , şi sunt plasate conform modelului, pentru toate exemplarele lor.
Componenta are un exemplar care nu este plasat pe placă, conform modelului plăcii.
Componenta are pe placă două exemplare în loc de un exemplar, cum se specifică în model.