Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2023-03-22 17:35:44.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:cufere.in, cufere.outSursăOJI 2023, clasa a 9-a
AutorLiliana SchiopuAdăugată delaura2020Moldovan Laura laura2020
Timp execuţie pe test0.25 secLimită de memorie262144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Cufere

Alex, eroina din Minecraft , este foarte curajoasă şi harnică. De-a lungul timpului, ea a depozitat în n cufere tot felul de obiecte fragile (de exemplu ouă) sau dure (de exemplu pietre). Un cufăr este o cutie de lemn cu 27 de compartimente dispuse pe 3 rânduri, câte 9 pe fiecare rând. Într-un compartiment poate fi depozitat un grup de unul sau mai multe obiecte identice : maximum 16 obiecte fragile sau maximum 64 de obiecte dure. Pot fi mai multe compartimente care să conţină acelaşi tip de obiecte, iar unele compartimente pot fi goale. Alex a etichetat atât compartimentele, cât şi obiectele, cu numere construite după următoarea regulă:
• un obiect are drept etichetă un număr natural cuprins între 10 şi 99, inclusiv, astfel: un număr prim, dacă este fragil, sau un număr compus, dacă este dur;
• toate obiectele identice primesc aceeaşi etichetă;
• un compartiment are drept etichetă un număr natural format din două valori alipite: numărul obiectelor din grupul depozitat în el, urmat de eticheta comună a acestora (de exemplu dacă
eticheta compartimentului este 1994, înseamnă că în el este depozitat un grup de 19 obiecte, fiecare având eticheta 94);
• compartimentele goale sunt etichetate cu 0.

Alex vrea s˘a rearanjeze obiectele din cufere, astfel ˆıncˆat:
• s˘a fie valorificat spat, iul, adic˘a s˘a fie ocupate cˆat mai put, ine cufere s, i, ˆın cadrul unui cuf˘ar, cˆat mai put, ine compartimente;
• s˘a fie ocupate compartimentele din cuferele disponibile la rˆand, ˆıncepˆand cu primul cuf˘ar, s, i, ˆın cadrul unui cuf˘ar,
ˆıncepˆand cu primul rˆand s, i, ˆın cadrul unui rˆand, de la stˆanga la dreapta. Cu alte cuvinte, se umple mai ˆıntˆai cuf˘arul
1, ˆıncepˆand cu rˆandul 1, s, i pe fiecare rˆand de la stˆanga la dreapta, apoi cuf˘arul al doilea, ˆın aceeas, i manier˘a, s, i as,a
mai departe;
• obiectele sunt preluate ˆın ordinea cresc˘atoare a etichetelor s, i din totalul obiectelor identice se formeaz˘a mai ˆıntˆai
grupuri cu num˘ar maxim de obiecte, s, i doar ultimul grup poate fi, eventual, incomplet;
• fiecare din aceste grupuri se depoziteaz˘a, pe m˘asura form˘arii, ˆın cˆate un compartiment al cuf˘arului curent, iar dac˘a
acesta se umple, se trece la cuf˘arul urm˘ator.
Dup˘a rearanjarea obiectelor, compartimentele sunt etichetate din nou, dup˘a aceeas, i regul˘a.

Cerinţe

Dˆandu-se cele n cufere, care cont, in obiectele ˆın ordinea init, ial˘a, Alex v˘a roag˘a s˘a realizat, i un program care s˘a determine:
1. pentru fiecare etichet˘a distinct˘a de obiect ˆıntˆalnit ˆın cele n cufere, num˘arul total al obiectelor cu acea etichet˘a;
2. noile etichete ale compartimentelor care compun cele n cufere, dup˘a rearanjarea obiectelor.

Date de intrare

Fis, ierul de intrare cufere.in cont, ine pe prima linie num˘arul c reprezentˆand cerint,a care trebuie s˘a fie rezolvat˘a (1 sau 2),
pe a doua linie num˘arul natural nenul n, cu semnificat, ia din enunt, , iar pe fiecare din urm˘atoarele 3n linii, cˆate 9 numere,
reprezentˆand etichetele init, iale ale compartimentelor aflate pe cˆate un rˆand al unui cuf˘ar, ˆın ordinea ˆın care ele se afl˘a ˆın
cufere, de la primul cuf˘ar, pˆan˘a la ultimul, ˆın cadrul fiec˘arui cuf˘ar de la primul rˆand pˆan˘a la al treilea, iar ˆın cadrul fiec˘arui
rˆand de la stˆanga la dreapta. Numerele aflate pe aceeas, i linie a fis, ierului sunt separate prin cˆate un spat, iu.

Date de ieşire

Fis, ierul cufere.out va cont, ine fie r˘aspunsul pentru cerint,a 1 (dac˘a c = 1), fie r˘aspunsul pentru cerint,a 2 (dac˘a c = 2).
Pentru cerint,a 1, pentru fiecare etichet˘a distinct˘a, ˆın ordine strict cresc˘atoare, se va afis,a o pereche format˘a din eticheta
respectiv˘a s, i num˘arul obiectelor cu aceast˘a etichet˘a. Fiecare pereche de numere va fi afis,at˘a pe cˆate o linie.
Pentru cerint,a 2, etichetele compartimentelor vor fi afis,ate corespunz˘ator plas˘arii lor ˆın cufere, cˆate 9 pe fiecare linie a
fis, ierului, de la primul cuf˘ar pˆan˘a la ultimul, ˆın cadrul fiec˘arui cuf˘ar de la primul rˆand pˆan˘a la al treilea, iar ˆın cadrul
fiec˘arui rˆand de la stˆanga la dreapta.
Numerele aflate pe aceeas, i linie a fis, ierului sunt separate prin cˆate un spat, iu.

Restricţii

  • ... ≤ ... ≤ ...

Exemplu

cufere.incufere.out
1
2
1488 1573 1437 4465 1099 1073 0 499 765
537 1173 4288 1273 2299 1555 1241 655 841
1141 237 5621 199 921 621 3465 1315 4155
1099 341 4765 6155 355 1099 6088 3988 255
4955 155 1329 1932 3099 114 3020 855 5555
1173 1388 673 2533 1488 1473 4033 2099 2065
14 1
15 13
20 30
21 71
29 13
32 19
33 65
37 21
41 34
55 241
65 152
73 79
88 182
99 107
cufere.incufere.out
2
2
1488 1573 1437 4465 1099 1073 0 499 765
537 1173 4288 1273 2299 1555 1241 655 841
1141 237 5621 199 921 621 3465 1315 4155
1099 341 4765 6155 355 1099 6088 3988 255
4955 155 1329 1932 3099 114 3020 855 5555
1173 1388 673 2533 1488 1473 4033 2099 2065
114 1315 3020 6421 721 1329 1932 6433 133
1637 537 1641 1641 241 6455 6455 6455 4955
6465 6465 2465 1673 1673 1673 1673 1573 6488
6488 5488 6499 4399 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?