Lista de probleme 24

Etichete

#4427 secvmin

Fie un șir de n numere naturale v[1], v[2], …, v[n], unde v[i] reprezintă al i-lea număr din șir. O subsecvență [x, y] a șirului v (cu 1 ≤ x ≤ y ≤ n) conține toate elementele v[x], v[x+1], ..., v[y - 1], v[y]. Fiind date două numere naturale n și k și un șir v de n numere naturale, scrieți un program care să răspundă la următoarea întrebare: câte subsecvențe conțin simultan cele mai mici k valori distincte din șir?

ONI 2023, clasa a VII-a

#4428 pix

Robotul Vasile s-a angajat la un depozit de pixuri. Aici pixurile sunt ambalate în cutii. Există N tipuri de cutii; într-o cutie de tipul i (1 ≤ i ≤ N) sunt ambalate exact nr[i] pixuri (nr[1] ≤ nr[2] ≤ ... ≤ nr[N]). În depozit există un număr atât de mare de cutii de fiecare tip încât Vasile poate utiliza oricâte cutii doreşte, de orice tip. Sarcina robotului Vasile este să livreze pixurile comandate de diferite firme de birotică. El nu ştie câte pixuri va avea de livrat la următoarea comandă, dar ştie că vor fi cel mult Vmax pixuri. Ca urmare, pentru a fi eficient, robotul Vasile vrea să îşi pregătească în camera de livrare un număr minim de cutii de pixuri astfel încât să poată livra orice număr de pixuri cuprins între 1 şi Vmax folosind cutiile pregătite, evident, fără a deschide cutiile. Scrieţi un program care citeşte valorile N, nr[1], nr[2], … nr[N] şi Vmax și determină numărul minim de cutii pe care robotul Vasile trebuie să le pregătească în camera de livrare astfel încât să poată livra orice număr de pixuri cuprins între 1 şi Vmax, fără a deschide nicio cutie.

#4452 UDP

Chris a scris pe un caiet foarte multe numere de două sau trei cifre, toate divizibile cu 7. Interesant este că aceste numere conțineau doar cifrele 1, 2 sau 4. Mădălina a făcut curățenie în casă și a aruncat caietul. Acum Chris este foarte supărat că și-a pierdut numerele. Ca să îl înveselească, Mădălina i-a spus lui Chris: “Numerele tale conțineau exact U cifre de 1, D cifre de 2 și P cifre de 4”. Bucuros, Chris a venit la concurenții de la ONIGim și i-a rugat să îi regăsească numerele. Experți în programare, concurenții s-au apucat de treabă, dar imediat și-au dat seama că este posibil să existe mai multe moduri de a reconstitui numerele. Din fericire Chris se mulțumește cu oricare reconstituire și a promis 100 de puncte pentru fiecare concurent care îi va oferi o soluție validă. Cunoscând cele trei numere U, D și P cu semnificația din enunț, să se determine numere de două sau trei cifre, divizibile cu 7 astfel încât în numerele determinate să se regăsească exact U cifre de 1, D cifre de 2 și P cifre de 4.

ONI 2023 baraj juniori

Dănuț este un om al peșterii foarte ocupat: are de spart n bolovani. Pentru fiecare bolovan i se cunosc numărul de zile z[i] necesare pentru spargerea lui și termenul limită d[i], adică ultima zi la care acesta ar trebui spart. Dănuț știe că cel mai eficient mod de a lucra este să se concentreze pe un singur bolovan în fiecare zi. Dacă începe să lucreze la un anume bolovan, el va lucra la acesta în continuu până când îl sparge, fără să intercaleze zile în care lucrează la alți bolovani, sau zile libere. Dându-se numărul n de bolovani, precum și numărul de zile necesare pentru spargerea fiecărui bolovan și termenul limită la care acesta ar trebui spart, să se determine o planificare a lucrului la cei n bolovani în așa fel încât un număr maxim de bolovani să fie sparți înainte de termen.

Apropiindu-se toamna și fiind în criză de timp din cauza războiului iminent, Ștefan a hotărât să supravegheze personal recoltarea strugurilor de la viile Huși, din apropiere de Vaslui, vie la care Ștefan ținea foarte mult. Strugurii recoltați au fost depozitați în grămezi la marginea fiecărui rând de vie. Se cunoaște, pentru fiecare dintre cele N rânduri, cantitatea (în ocale) recoltată de pe rândul respectiv. Ștefan era un conducător corect astfel încât a hotărât ca toate căruțele disponibile la un moment dat să transporte aceeași cantitate de struguri.
1) Determinați cea mai lungă secvență de grămezi pe care le pot transporta cele N căruțe în prima tură.
2) Determinați o modalitate de transport a tuturor strugurilor la cramă, conform cerințelor lui Ștefan.

#4451 fuziune

Se consideră un șir de n numere naturale nenule. Două numere situate pe poziții consecutive în șir (a[i] și a[i+1], unde 1 ≤ i < n) pot fuziona dacă ele au cel puțin un divizor comun strict mai mare decât 1. În urma fuziunii ele vor fi înlocuite de cel mai mic număr care se divide cu toți divizorii lui a[i] și ai lui a[i+1]. Operația de fuziune se poate repeta, pe noul șir obținut, până când în șir nu va exista nicio pereche de numere situate pe poziții consecutive care să poată fuziona. Să notăm cu b șirul obținut după efectuarea tuturor operațiilor de fuzionare. Numim coeficient de fuziune al șirului b și îl notăm cu cf(b) un număr nenul care are proprietatea că orice termen al șirului b are cel puțin un divizor comun cu cf(b), strict mai mare decât 1.
Dat fiind un șir de numere naturale nenule, scrieți un program care să rezolve următoarele două cerințe:
1) să se determine lungimea minimă a șirului b obținut după efectuarea tuturor operațiilor de fuziune posibile;
2) să se determine cf(b).

Înaintea vacanței de Paște, la școală, s-au primit cadouri pentru elevii din clasa a V-a. Sunt N cutii cu bomboane și se cunoaște numărul de bomboane din fiecare cutie. Numărul de cutii de bomboane primite de fiecare copil trebuie să fie același. Acest număr trebuie să fie mai mare sau egal cu 2. Alegerea acestei cutii trebuie făcută astfel încât numărul total de bomboane care se împart să fie cât mai mare.
1) Care este numărul maxim de copii care vor primi cadouri?
2) Care este numărul maxim posibil de bomboane pe care le poate primi un copil în condițiile descrise mai sus?
Pentru ambele cerințe trebuie determinat și numărul de bomboane din cutia care eventual se păstrează.

#4435 dominew

Pentru că se plictisește și este foarte inteligent, Radu l-a rugat pe prietenul lui, savantul Feder, să creeze o activitate care să-i pună mintea la încercare. Savantul Feder a adus N piese dreptunghiulare pe care sunt scrise numere naturale și le-a așezat pe masă în ordinea crescătoare a valorilor scrise pe ele, pe poziții consecutive, una lângă cealaltă. Apoi îi dă lui Radu, una câte una, alte M piese dreptunghiulare, pe care sunt scrise numere naturale, într-o ordine oarecare. Când Radu primește o piesă el trebuie să o așeze în șirul de pe masă pe cea mai mică poziție posibilă, astfel încât piesele din șir să rămână în ordine crescătoare. Evident, șirul de pe masă se modifică pe măsură ce Radu așază piesele în șir. Cunoscând șirul pieselor de pe masă, în ordinea în care sunt așezate, precum și cele M piese pe care le primește succesiv Radu, scrieți un program care să afișeze pentru fiecare dintre cele M piese poziția pe care aceasta este așezată în șir.

#4436 nisip

Misiunea lui Loid constă în a dinamita piatra de pe unele niveluri pentru a provoca surparea minei și curgerea nisipului spre nivelurile inferioare. El are de îndeplinit m sarcini numerotate de la 1 la m. Acestea sunt de două tipuri:

  • 1 t p (dinamitare): Loid trebuie ca, la secunda t, să dinamiteze piatra de pe nivelul p al minei. Pentru orice astfel de sarcină, Loid știe că, la secunda t, nivelul p conține piatră, iar aceasta va fi înlocuită de aer la secunda t+1, după dinamitare.
  • 2 t p (întrebare): Pentru a i se testa perspicacitatea, Loid este întrebat ce conține nivelul p al minei la secunda t: aer, nisip sau piatră?

Dându-se n, conținuturile tuturor nivelurilor minei la secunda 0, m și sarcinile care trebuie îndeplinite, să se determine răspunsurile la sarcinile de tip întrebare.

ONI 2023, clasa a IX-a

Lui Scortzy îi plac foarte mult bilele și puterile lui 3, astfel și-a organizat colecția de bile în cutii, după următoarea regulă: în prima cutie a pus o bilă, în a doua cutie 3 bile, în a treia cutie 9 bile, apoi 27, 81, 243, … ș.a.m.d. Privind linia lungă de cutii Scortzy și-a pus întrebarea: Ce număr de bile poate obține folosind bilele din cutii, fără a le scoate din cutie? Pentru a răspunde întrebării a început să formeze numerele: 0 (nici o cutie), 1 (cutia 1), 3 (cutia 2), 4 (cutiile 1 și 2), 9 (cutia 3) … ș.a.m.d., obținând șirul lui Scortzy, primii termeni ai acestui șir fiind: 0, 1, 3, 4, 9, 10, 12, 13, 27, 28, 30, 31, 36, 37. Plăcându-i noul șir obținut Scortzy dorește să rezolve următoarele probleme:
1. Citind un număr natural n determină câte cutii au mai puțin de n bile în ele;
2. Citind un număr natural n urmat de n valori naturale x1, x2, ..., xn determină câte bile sunt, în fiecare dintre cutiile utilizate, pentru a obține cel de-al xi-lea număr din șirul lui Scortzy.